home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
COMMUNIC
/
3459.ZIP
/
EL-SFX.EXE
/
EAZILINK.DOC
< prev
next >
Wrap
Text File
|
1992-09-01
|
267KB
|
5,550 lines
EAZILINK VERSION 4
User Manual
Copyright (c) 1989-1992, SandSoft.
All rights reserved.
INTRODUCTION
This is version 4 of EaziLink. All comments or suggestions are
welcome and should be posted as public messages on The SandSoft
Support Board (Skipton (0756) 791298). Please note that details
of BBS based technical support, for REGISTERED USERS, is included
with the full registration package.
EaziLink is a general purpose communications package designed for
communicating with BBS and Viewdata services. In addition to the
usual range of baud rates commonly offered by other packages, the
1200/75 split baud rate, still often used in Britain, is also
supported when speed buffered modems are used.
EaziLink should run on all IBM PC/XT/AT machines and close
compatibles with 640K+ of RAM and fitted with a VGA, EGA, CGA,
MDA or HGC video adapter. The program will run on high capacity
floppy disk based systems (720K+ disk capacity) but full use of
all features is much more practical with a hard disk. The
program is supplied with default modem control strings to suit a
Miracle WS3000 modem but EaziLink can generally be configured to
suit any Hayes compatible modem or one which has a very similar
range of capabilities.
EaziLink is configured to make use of external file transfer
protocol drivers rather than having such drivers built-in. This
approach offers maximum flexibility and enables improved drivers
to be incorporated as and when they are released. Please
remember that these third party protocol drivers, such as the
widely available DSZ (tm), are themselves usually Shareware
products and should be registered with the copyright holders if
you intend to use them with EaziLink.
In addition to the normal 'Originate Mode' where the user dials
out to achieve a connection, version 4 includes a powerful 'Host
Mode' in which EaziLink can be set up as a BBS to receive and
handle incoming calls. EaziLink's host mode has most of the
features expected of a BBS and is very simple to set up. Host
mode features include ANSI display support, user access levels, a
sophisticated message base with bulk message download capability,
16 File areas, 16 News bulletins, 16 Doors, user defined colours,
menus and help screens, Archive viewing facilities and a flexible
file Up/Download mechanism.
This manual is divided into two main logical sections entitled
'ORIGINATE MODE' and 'HOST MODE' covering these two basic modes
of operation. Two computers running EaziLink can also be
connected locally by cable. (See the DIRECT CONNECTION section)
DISTRIBUTION RESTRICTIONS
Evaluation
EaziLink is NOT a public domain or free package. Non-registered
users of EaziLink are granted a restricted license to use the
product for a limited evaluation period, to determine it's
suitability for their purpose. Continued use of EaziLink beyond
this evaluation period, not exceeding 21 days, requires
registration.
Package Integrity
EaziLink must be distributed in a completely unmodified form,
including all the original program, document and support files.
Commercial Organisations
EaziLink may not be distributed as part of any other product or
service by a business, organisation or institution, without
entering into a suitable bulk registration agreement with
SandSoft. Bulk registrations involve the supply of multiple full
registration packages and attract a sliding scale of discounts up
to a maximum of 40% -
5+ Copies 10% Discount
25+ Copies 20% Discount
50+ Copies 30% Discount
100+ Copies 40% Discount
Where a number of copies of EaziLink are to be used at the same
working location, a site license may be purchased. Site licenses
involve the supply of one master disk and one printed manual -
the reproduction and distribution of copies is the responsibility
of the client. Site licenses attract a fixed discount of 50% for
all copies after the first for which the full registration fee
applies.
BBS operators may offer EaziLink for download and Shareware disk
vendors may distribute the package freely, provided that no
charge is made for the software itself and provided that EaziLink
is not supplied as part of a commercial package or service as
outlined in the 'Commercial Organisations' section above.
Special Arrangements
Organisations with special or unusual licensing requirements are
invited to contact SandSoft with their proposals. SandSoft will
also consider requests for the production of customised versions
of this product.
REGISTRATION
Individual copies of EaziLink v4 may be registered by sending the
35.00 registration fee along with your name and address to:
P.M. Opacic, 5 Lytham Close, Skipton, N. Yorks. BD23 2LF
The printed manual is supplied only to users who have registered
EaziLink and paid the registration fee. If you have registered
we would like to take this opportunity to thank you for your
support. Please DO NOT copy and distribute the printed manual or
the registered program disk supplied with it.
If you wish to pass on copies of EaziLink to other prospective
users, please offer them the Shareware version only.
Registration entitles you to future upgrades at reduced cost and
also to BBS based technical support. A standard registration
entitles a user to run EaziLink on ONE computer at a time. If
any group or organisation requires multiple copies of EaziLink
they may negotiate a bulk registration agreement with SandSoft,
or purchase a site licence. (See 'Distribution Restrictions')
Note: For registrations outside the E.E.C. please include an
additional 4.00 to cover shipping costs - Otherwise SandSoft
reserves the right to supply the manual on disk only.
Using the EaziLink technical support BBS we will attempt to
answer queries, receive bug reports etc. Details of any
additions or improvements to EaziLink will also be posted on the
board.
The SandSoft Support Board: Skipton (0756) 791298
Do make use of the support board - It is provided for you as a
registered user.
The first time you log onto the support board leave a message to
the author of EaziLink, Michael Opacic, requesting upgrade. Once
upgraded you will have access to an additional registered file
area. If you have any problems or queries please 'Post' a public
message on the support board. We or other EaziLink users will
help where possible. We would appreciate your help in compiling
a list of computer/modem combinations on which users are running
EaziLink along with the Modem Control strings and the Host mode
'Auto Answer' string which they are using in the configuration
section. We would be very grateful if you would leave a message,
containing the above information, on the board.
THE FULL REGISTRATION PACKAGE
REGISTERED users will receive an up to date registered version of
EaziLink along with a printed and bound manual and a number of
utility programs designed to be used with EaziLink. More
utilities are being produced all the time - Some of those
currently available are listed below.
EAZIEDIT.EXE
A fast full screen ASCII text editor using WordStar (tm)
compatible commands. A comprehensive editor in which all the
usual editing and block manipulation commands are supported. You
may install this as your external 'Editor'.
EAZIFILE.EXE
A file management program which allows files to be tagged and
copied, deleted, renamed etc. This may be installed as your
external 'Filer'.
T40.EXE
A utility which enables text only equivalents of Viewdata '.I40'
image files to be created.
ANSITYPE.EXE
A utility which enables the user to type files containing ANSI
escape codes without the need for ANSI.SYS. See how those
EaziLink host mode screens will look.
TELESOFT.EXE
An external telesoftware download protocol driver. Download CET
frame formatted PC telesoftware from Prestel. This may be
installed in EAZILINK.PRO in the usual way.
The above files are also kept, fully updated, in the registered
files area of the EaziLink support sub-board. Registered users
are given full access to this area and are free to download any
file.
A large number of third party utility programs, designed
specifically for use with EaziLink, are already available, or in
the process of being written, and will be made available to users
via the support board.
O R I G I N A T E M O D E
PROGRAM FILES
The directory where EAZILINK.EXE is located is referred to in
this documentation as the 'main directory'. The following files
are either supplied with the EaziLink system or are generated by
the facilities within the program:
EAZILINK.EXE The main program file. (Supplied)
EAZILINK.OVL Main program overlay file. (Supplied)
EAZILINK.CNF The configuration file. (Generated by user)
EAZILINK.LOG The session usage log file. (Generated by user)
EAZILINK.PRO External protocol definitions. (Sample Supplied)
EAZILINK.DIR Default dialling directory (Sample supplied)
INSTALL.EXE Installation program. (Supplied)
DIRCON2.EXE v3.x to v4.x DIR converter. (Supplied)
VIEWDATA.FNT CGA (mode 4) Viewdata font. (Supplied)
*.DOC Various documentation files. (Supplied)
*.DIR Other dialling directories (Generated by user)
*.LDC Long distance calls (Generated by user)
*.CAP Text capture files. (Generated by user)
*.I40 Viewdata Image files. (Generated by user)
*.I80 ANSI/TTY BBS Image files. (Generated by user)
*.KEY Macro files. (Generated by user)
*.SCR Auto log-on scripts. (Samples Supplied)
*.MNU Host mode menu files. (Supplied)
*.HLP Host mode help files. (Supplied)
Host mode related files are covered in the 'HOST MODE' section
later in this manual.
PLEASE NOTE
The system files - EAZILINK.EXE, EAZILINK.OVL, EAZILINK.DIR,
EAZILINK.CNF, EAZILINK.LOG (and HOST.LOG), EAZILINK.PRO and
VIEWDATA.FNT MUST be located in the EaziLink main directory.
The '.SCR' Script files are best kept in a separate directory,
off the main directory, called say 'SCRIPTS'. The 'Script Path'
field in the configuration section must point to the selected
directory. (Note: default is main directory)
External protocol drivers are best kept in a separate directory,
off the main directory, called say 'XFER'. The 'Protocol Path'
field in the configuration section must point to the selected
directory. (Note: default is main directory)
The file types '.MSG', '.CAP', '.I40/.I80', and '.KEY' may all be
given a specific default path in the configuration 'File Paths'
section. This helps to create an organised and tidy working
environment. All will default to the main directory initially.
All other file types default to the main directory unless an
explicit path specification is included in the file name.
A typical hard disk directory set-up may be as follows.
C:\EAZILINK EaziLink main directory.
C:\EAZILINK\UPLOAD Put uploads here prior to file transfer.
C:\EAZILINK\DOWNLOAD All downloads are directed to here.
C:\EAZILINK\MESSAGES All messages for sending go here.
C:\EAZILINK\CAPTURE Capture files go here by default.
C:\EAZILINK\IMAGES Image files go here by default.
C:\EAZILINK\MACROS Keyboard macro files go here by default.
C:\EAZILINK\SCRIPTS Auto log-on scripts stored here.
C:\EAZILINK\XFER External protocol drivers stored here.
If Host mode is to be used then additional paths may be set up:
C:\EAZILINK\HOSTMAIN Host mode main main path.
C:\EAZILINK\HOSTMESS Where Host mode messages are stored.
C:\EAZILINK\HOSTDOWN Files available for users to download.
C:\EAZILINK\HOSTUP Path where user uploads are to be stored.
If multiple download file areas are to be offered then the
'\HOSTDOWN' path will not be used since each download file path
will be defined in a special file 'FILES.HST' which is described
in the Host Mode section later.
INSTALLATION
Automatic Installation
If you are installing EaziLink on a hard disk or a large capacity
floppy disk, you can make installation relatively pain free by
using the INSTALL.EXE file included with the package.
The auto-installation system creates directories, moves files and
enters paths and modem control strings within EaziLink itself.
To auto-install EaziLink, follow these steps:
1) Create a directory called 'EAZILINK' directly off the root
directory of the drive on which you wish to install EaziLink.
Change drive/directory until you are in the new EAZILINK
directory.
2) Where the EaziLink files are stored in an archive, extract all
EaziLink files from the archive into the newly created
EAZILINK directory. Otherwise simply copy all the files
supplied into the EAZILINK directory.
ALL the files supplied with the EaziLink package should now be
located in the EAZILINK directory.
3) Whilst in the EAZILINK directory, execute INSTALL.EXE from the
command line - 'C>install'. Follow the instructions as they
appear on-screen.
If you have one of the modems listed in the install program, you
will not need to worry about modem control strings - they will be
entered for you.
Manual Installation
There follows a description of how to set up EaziLink on a hard
disk system. It is assumed that the hard disk is drive C:.
If the EaziLink package is in the form of an .ARC or .ZIP file
use PKXARC (tm) or PKUNZIP (tm) or a similar utility to extract
the files from the archive.
Create a new directory called, say EAZILINK, off the root
directory of drive C: by executing the DOS command:
C>MKDIR EAZILINK
Change to this new directory:
C>CHDIR EAZILINK
Now copy the files - EAZILINK.EXE, EAZILINK.OVL, EAZILINK.DIR,
EAZILINK.PRO, INSTALL.EXE and VIEWDATA.FNT into the newly created
EAZILINK directory.
Next we create several new sub-directories within the EAZILINK
directory:
C>MKDIR UPLOAD
C>MKDIR DOWNLOAD
C>MKDIR MESSAGES
C>MKDIR CAPTURE
C>MKDIR IMAGES
C>MKDIR MACROS
C>MKDIR SCRIPTS
C>MKDIR XFER
If Host mode is to be used you should also create 4 others:
C>MKDIR HOSTMAIN
C>MKDIR HOSTMESS
C>MKDIR HOSTDOWN
C>MKDIR HOSTUP
Change to the SCRIPTS directory:
C>CHDIR SCRIPTS
Now copy all the sample log-on script files with the .SCR
extension into this directory.
ELX.EXE and any external file transfer protocol drivers which you
intend to use should be copied into the XFER directory and all
the host mode '.MNU' and '.HLP' files should be copied to the
HOSTMAIN directory in a similar way.
Now move back into the main EAZILINK directory:
C>CHDIR ..
To run EaziLink, simply type EAZILINK at the DOS prompt.
Note: Run the Configure section from the EaziLink Main Menu
before doing anything else - If you install EaziLink manually,
ensure that you set up the file paths in the configuration
section to point to those which you created above.
FILE TRANSFER PROTOCOLS
All file transfer protocols used by EaziLink are External. This
provides the most flexible method of transferring files since the
user can define up to 16 protocols of his/her own choice.
The only protocol supplied with EaziLink is our own ELX, an
Xmodem implementation - Several protocols supported by the
popular DSZ protocol driver have also been defined in the sample
'EAZILINK.PRO' file supplied with the package.
Please do NOT edit the 'EAZILINK.PRO' file unless you know what
you are doing. You will be able to use ELXmodem right away and
also those protocols offered by DSZ IF you obtain and install
DSZ.COM in the XFER directory.
The installed protocols are available in both Originate and Host
modes unless suppressed in host mode by use of the semi-colon
modifier the effect of which is described later in this section.
The file 'EAZILINK.PRO' can be created and edited by any standard
ASCII text editor. Any line starting with a '\', '.' or ';'
character is considered to be a comment and is ignored by the
program. The General form of a complete protocol definition is
as follows:
name MenuName
hotkey Character
upload UploadCommandLine
download DownloadCommandLine
where:
'MenuName' is the protocols name as it is to appear on the menu.
'Character' is the key to be pressed to select it. (A..Z, 0..9)
'UploadCommandLine' is the full upload command line.
'DownloadCommandLine' is the full download command line.
These four lines must be in the order shown and all lines must be
present for each protocol defined, or an error message will be
generated and EaziLink will abort at start-up. If any of the
defined protocols are not to be offered to users calling EaziLink
when operating in host mode, add a semi-colon (;) to the end of
'MenuName' i.e. 'MenuName;'. This will prevent inappropriate
protocols like, for example, a telesoftware downloader from being
offered to callers in host mode whilst still allowing the
protocol to be used in originate mode.
Both the upload and download command lines are the lines you
would normally type at the DOS prompt to invoke a file transfer
with the selected protocol. These command lines may contain
'system variables' (fully described later) to pass information to
the protocol driver. These variables are as follows:
%port Is replaced by the current comms port number.
%speed Is replaced by the current baud rate.
%file Is replaced by the, user entered, file name/s to be
transferred.
%path Is replaced by the current path. This is always where
EaziLink wants incoming files to be stored, in both
Originate and Host modes, and can be used to prevent
file path specifications transmitted by DSZ Ymodem &
Zmodem from influencing the incoming file's location on
your disk.
Note: DSZ does not accept a root path in the form 'A:\', as
passed by the %path variable, and DOS's CD command, as valid. It
will only accept a path without a trailing '\'. You must use
upload and download paths which are not root paths if you intend
to use %path in a DSZ protocol definition, within EAZILINK.PRO.
For example If you wish to direct downloads to floppy drive 'A' -
make the path 'A:\DOWNLOADS' and %path will direct downloads
correctly.
If a command line contains the '%file' system variable then the
user is prompted to enter the file name/s before file transfer
commences, otherwise the file transfer routine will expect the
names to be supplied in the header from the remote service as
happens in the case of Zmodem. Simpler protocols like Xmodem
need the '%file' to be included in both send and receive modes.
Example:
name Zmodem
hotkey Z
upload DSZ.COM port %port speed %speed sz %file
download DSZ.COM port %port speed %speed rz %path
Note: The extension '.COM', '.EXE' or '.BAT' MUST be used with
the protocol driver name since EaziLink executes each file type
differently.
The driver name may contain a path specification, to indicate
where the driver will be found. If not, the protocol driver must
be in the directory specified in the configuration 'Protocol
Path' field. Study the supplied EAZILINK.PRO file to see how the
ELX and DSZ protocols have been defined.
Note: EaziLink executes those protocol drivers which appear in
EAZILINK.PRO with a '.COM' or '.EXE' extension, directly as child
processes without using the command processor - COMMAND.COM. If
the extension is '.BAT' then the command processor is used to
execute the protocol driver. You may rarely find drivers which
need to be executed by the DOS command processor - These should
be set up as batch files which appear in EAZILINK.PRO with the
extension '.BAT'. If an external protocol driver does not work
when configured for EaziLink as ELX and DSZ are, try installing
it as a batch file.
IMPORTANT: Where a file transfer protocol is configured as a
batch file - the batch file and the protocol driver itself should
both be in the same directory - that which is indicated by the
'Protocol Path' field in the configuration section. The name of
the driver in the batch file itself MUST include the driver's
FULL path name. This is necessary because once the batch file
has gained control, EaziLink has no way of controlling where the
batch file should look for the executable driver itself.
Our own Xmodem external protocol, ELX, is supplied with EaziLink
to ensure that users have at least one common protocol with which
to download more exotic protocol drivers like DSZ (tm). ELX is
installed, ready for use, in the supplied EAZILINK.PRO file.
Make sure that you locate ELX.EXE in the 'Protocol Path'
directory.
Note: ELX is an Xmodem implementation but is installed to use hot
key 'E' to avoid conflict with DSZ's Xmodem entry. (See ELX.DOC)
A telesoftware downloader is also supplied in the full registered
user package to enable the downloading of CET frame encoded
telesoftware from Prestel - see the documentation on the
registered disk for full operational details.
Note: Not all protocols work well at the split 1275 baud rate,
particularly when uploading (you are better off uploading at 300
baud rather than 1275 where possible). Where speed buffering is
being carried out within the modem, i.e. where the DTE speed can
be higher than the line speed, you will need to set up hardware
handshaking in the EAZILINK.PRO definitions for ELX and DSZ's
protocols (see the ELX and DSZ documentation for details). This
applies to most other protocols too.
Note: File transfers are initiated in EaziLink using the keys
PGUP (Upload or send a file) and PGDN (Download or receive a
file). See the 'Online Options' section later. Do make sure you
have started the file transfer off at the remote host BEFORE you
start your own protocol via PGUP or PGDN.
MAIN MENU OPTIONS
On program start-up, immediately after the initial copyright
screen, the Main Menu is displayed.
+----------| MAIN MENU |----------+
| |
| Dial |
| Editor |
| Shell |
| Configure |
| Terminal |
| View |
| Keyboard |
| Flash-back |
| Host |
| Utilities |
| Quit |
| |
| |
| Access the dialling directory. |
+---------------------------------+
The options available are as follows:
Dial
Displays the dialling directory ready for making calls, making or
editing directory entries etc. (see: THE DIALLING DIRECTORY)
Editor
Invokes the editor specified by the user during the configuration
procedure.
Shell
Invokes a DOS shell from which DOS commands and programs can be
executed. Type exit at the DOS prompt to return to the program.
Configure
Enables default settings to be selected and saved to the .CNF
file. This file will be read when EaziLink is started up in
future and the settings it contains will be adopted.
When you first run EaziLink, select this option first and work
through each installation section carefully. Refer to your modem
manual when entering modem control strings. Don't forget to save
the configuration using the Save option.
Note: All program configuration is handled by this option,
including that related to the Host mode. (see CONFIGURING
EAZILINK)
Terminal
Enters terminal mode. The terminal window consists of a 24 line
screen with a status line at the foot of the screen. Characters
typed in are sent directly to the modem.
Note: If a number is dialled from the Terminal window the comms
parameters in the current configuration - 'Default Entry' record
is used to make a connection and log-on to the remote service.
Generally Terminal mode should not be needed, other than to
program the memory on more advanced modems, and all calls are
best made via the dialling directory if possible. Changes can be
made to the 'Default Entry' set-up via the 'Alt L' option whilst
in terminal mode. (See 'Alt L' in the 'Online Options' section)
IMPORTANT: If any connect strings have been defined in the
configuration's 'Modem Control String' section, then before
dialling out in terminal mode you MUST send the commands to the
modem to make it return extended word result strings - e.g. 'AT
V1 X1', or whatever your modem requires. If you do not do so the
cryptic 'CONNECT' string will be confused with the 300 baud
'CONNECT' string of the extended result string set. EaziLink's
ability to drop back to a baud rate dictated by the modem, will
then cause it to go on-line at 300 baud regardless of the baud
rate you have set in the configuration section. The connection
will then fail, unless, of course, it was intended to be a 300
baud connection. If your modem's default state is to return full
connect messages then this step will not be required.
View
Enables full colour BBS and Viewdata images (captured by using
the Alt I command whilst on-line) to be viewed. A file directory
window is opened, displaying image files with the extensions
'I40' (Viewdata images) and 'I80' (BBS images), ready for
selection using the highlighted cursor bar. Page through the
images in the file using the CURSOR UP (or PGUP), CURSOR DOWN (or
PGDN), HOME and END keys. The following options are available:
(R)edirect...Select a file to which any displayed image can be
appended by use of the (I)mage option. This can be
used to build up a special file of images drawn
selectively from other files. Note the file
selected is the same as that which is selected by
the on-line Alt R option - changing one changes the
other.
(I)mage......Append the currently displayed image (the left hand
image in the case of Viewdata I40 images) to the
file selected by (R)edirect.
(L)oad.......Load another image file for viewing.
(S)nap.......Viewdata Only. Copy the image on the left hand side
of the screen to the right hand side. By using Snap
and Load, any two Viewdata frames can be viewed side
by side in order to, for example, compare and study
changes in stock values.
Press ESC to return to the main menu.
Keyboard
The Keyboard option gives the user access to the keyboard macro
options. Macros may be edited, loaded or saved. Please note
that macros are not automatically saved at any stage by EaziLink
- this operation must be performed by the user. The function
keys F1..F10 may be defined in their Ctrl and Alt forms - a total
of 20 definable keys. On entering edit mode the first 10
definitions are displayed for editing/entering. Macros may be up
to 255 characters long. Use the up and down cursor keys to move
from macro to macro and the PGUP and PGDN keys to move between
the shift modes. Changes to a macro are committed to memory by
the four control keys above and also the ENTER key. Press ESC to
return to the Key menu. If the default macro file 'EAZILINK.KEY'
exists in the configuration 'Macro Path' directory, it is
automatically loaded at program start-up - unless the '/m'
command line parameter overrides it - see the MACROS section
later for full details.
Flash-back
Text which has previously scrolled off the screen is captured in
a special buffer. This buffer can be re-sized, as described
later in the configuration section, and can be viewed off-line by
use of this main menu option - the on-line equivalent is Alt F.
In order to save memory the Flash-back buffer can be swapped to
disk during certain operations - More on this later.
Host
Sets EaziLink in Host Mode. See the separate 'HOST MODE' section
of this manual.
Utilities
Presents the Utilities menu. The on-line Alt U option offers the
same set of utilities. The options available are:
Command.......Execute a single DOS command. Any command which
can be entered at the DOS command line may be
executed from here. If you want EaziLink to
pause before regaining control, in order to see
the resultant output of the command, then add a
semi-colon ';' to the end of the command line.
Shell.........Run the DOS shell. Repeated on this menu for
convenience.
Editor........Run the editor defined in the configuration
section. Repeated on this menu for convenience.
File manager..Run the file management program defined in the
configuration 'Optional Utilities' section.
File Lister...Run the file listing program defined in the
configuration 'Optional Utilities' section.
Quit
Exit from EaziLink to DOS. The currently loaded dialling
directory and any associated '.LDC' file is saved and the capture
and log files are closed where appropriate.
CONFIGURING EAZILINK
EaziLink can be extensively configured to suit a users hardware
and working environment preferences. Configurable items are
presented on a menu:
+---| Configuration |---+
| |
| Port Number |
| Modem Control |
| Dialling Delay |
| Flash-Back Size |
| File Paths |
| Utilities |
| Entry Format |
| Host Mode |
| Colour |
| Alarm |
| Log calls |
| MOuse support |
| SWapping |
| Save Set-up |
| Quit |
| |
+-----------------------+
Any one or all items may be edited. Remember that changes to the
configuration will only be recorded in the EAZILINK.CNF file on
the disk if the 'Save Set-up' option is executed.
The configuration section's menus have been designed to allow the
user to cursor up or down to any particular field within a
configuration block, and thus edit fields selectively. This
mechanism rotates around the menu fields - when it reaches the
bottom it returns to the top and vice versa. When all changes
have been made, press ESC to leave the block. If any item in the
block has been changed you are prompted to indicate whether you
wish to keep the changes or not. Editing these menus is now much
quicker than in earlier versions of EaziLink.
Port Number
Select the comms port to be used 1..4. (if in doubt select port 1
if you have an external modem or port 2 in you have an internal
card modem)
Modem Control
The modem is controlled by EaziLink using the entries made in
these fields:
+----------------| Modem Control Strings |----------------+
| Reset : ATZ ^M |
| Init : AT S7=40 S0=0 V1 X1 ^M |
| Init1275 : AT S26=10 S7=40 S0=0 X1 V1 ^M |
| Hang Up : ~~~+++~~~AT H0 ^M |
| Dial Prefix 1: AT <!> DP |
| Dial Prefix 2: AT <!> DP |
| Dial Prefix 3: AT <!> DP |
| Dial Prefix 4: AT <!> DP |
| Dial Prefix 5: AT <!> DP |
| Dial Prefix 6: AT <!> DP |
| Dial Postfix : ^M |
| Dial Cancel : ^M |
| Command OK : OK |
| Connect Msgs : Edit? |
| No Connect : NO CARRIER,BUSY,NO ANSWER,NO DIALTONE |
| Fix DTE Rate : No |
+---------------------------------------------------------+
Note: The following characters have special effects in modem
control strings:
| RETURN
^ The following character is treated as a control
character if it is in the range '@'..'[' (0..27)
otherwise the following character is sent as is.
e.g. ^M^J sends a carriage return followed by a line
feed, ^| sends a the '|' character (not RETURN as
usual), ^^ sends the '^' character itself.
~ Causes a half second delay.
The default strings in EaziLink are suitable for Hayes type
modems. The Init1275 string contains 'S26=10' which is required
by the Miracle WS3000 modem to set 12/75 baud rate. Users of
this modem should find the default strings correct, but note that
the various Hayes 'No Connect' strings, listed later, are not in
fact supported by the earlier WS3000s.
The default modem control strings are as follows:
Reset.........ATZ|
Resets the modem back to it's factory settings (don't forget the
'|' carriage return symbol).
Init..........AT S7=40 S0=0 V1 X1 |
Initialises the modem for all equal baud rates. The 'AT' is the
Hayes Attention command, 'S7=40' tells the modem to wait up to 40
seconds for a connection, 'S0=0' turns off the auto-answer, 'V1'
makes the modem reply with words rather than code numbers, 'X1'
makes the modem return extended replies. Use the highest number
your modem allows with X to enable BUSY signal detection where
implemented, '|' is the terminating carriage return.
Init1275......AT S26=10 S7=45 S0=0 V1 X1 |
This is the same as 'Init' above apart from the 'S26=10' to
change to 12/75 split baud rate on the WS3000 modem. You must
include any commands required to set 12/75 on your modem in this
string. Please note that if 'ATZ' returns your modem to non-
split rate mode, it will not be necessary to set the register
back in the 'Init' string because an 'ATZ|' reset is issued prior
to the Init and Init1275 strings - Otherwise you may need an
explicit command in 'Init' to return to normal non-split rate
operation.
Hang Up.......~~~+++~~~AT H0 |
The string required to hang-up the modem. The first '~~~' pauses
for 1 1/2 seconds, '+++' forces the modem into command mode,
'~~~' another 1 1/2 second delay, 'AT' the Hayes attention
command, 'H0'the hang-up command, '|' the terminating carriage
return.
Note: If your modem can be configured to drop the line and return
to command mode on detecting a drop in DTR then you can remove
the Hang-up string from the 'Modem Control String' section
completely (A common, though by no means universal, modem command
to achieve this is '&D2'). The logic EaziLink uses is that if a
'Hang-up' string has been defined it sends the string to hang-up
the modem - If no hang-up string has been defined then DTR is
lowered, for a short time, to hang-up the modem.
Dial Prefix 1..AT <!> DP - Dial Prefix 6..AT <!> DP
Six alternative strings to be sent before the telephone number.
The 'AT' is the Attention command, 'DP' is the pulse dial
command. Please note that '|' should NOT be added to this
string. All six are defaulted to the pulse dialling command
initially but may be defined to send any command string
understood by your particular modem. One of these six prefixes
is specified for each dialling directory entry. Modem based MNP
could, for example, be activated or deactivated, where
applicable, via these prefixes.
The <!> token has a special purpose - If the <!> field in a
dialling directory entry contains a modem control command, the
<!> field in the prefix is replaced by that modem command.
Otherwise the <1> in the prefix is simply ignored. This
mechanism can be used, for example, to control MNP or strap the
modem to a particular speed etc. This enables the modem to be
set up specially for certain services if needed. More about this
advanced feature in the section covering the dialling directory.
Dial Postfix..|
The string to be sent to terminate the telephone number. This is
usually a carriage return.
Command OK....OK
The string returned by the modem if a command is understood and
executed correctly. This is usually 'OK'.
Connect Msgs... Edit?
This option gains access to the section where modem CONNECT
messages must be entered.
+----------------------- Connect Msgs ------------------+
| Connect 300 : CONNECT^M |
| Connect 1200 : CONNECT 1200 |
| Connect 1275 : CONNECT 1275 |
| Connect 7512 : CONNECT 7512 |
| Connect 2400 : CONNECT 2400 |
| Connect 4800 : |
| Connect 7200 : |
| Connect 9600 : |
| Connect 12000: |
| Connect 14400: |
| Connect 19200: |
| Connect 38400: |
+--------------------------------------------------------+
Connect 300....CONNECT^M
Connect 1200...CONNECT 1200 etc...
These are the strings returned by the modem when it makes a
successful connection at each baud rate. Each baud rate which
your modem supports MUST be filled in - any which it does not
support may be left blank. If you are using a manual modem which
returns no such strings you MUST leave all fields from Connect
300 to Connect 38400 empty - this enables EaziLink to go on-line
on detection of a carrier signal rather than upon receipt of a
valid connect string. If ANY of the connect strings have been
defined, EaziLink will only go on-line on receipt of a matching
connect string from the modem - the raising of DCD alone will NOT
make EaziLink go on-line. In either case, it is important that
your modem raises DCD immediately a connection is established.
Note: '^M' or '|' may be used in a connect string to represent a
carriage return. This is important where a modem returns a
simple 'CONNECT' string for a 300 baud connection. The '^M' must
be added to prevent 'CONNECT' from being confused with the
'CONNECT' part of the longer connect strings issued for other
baud rates. Please note that you must enter the correct 'Connect
7512' string if you want host mode to connect with 1275 callers
with many modems.
Note:If 12000 bps connects are expected then the modem and
EaziLink must be configured to operate with a fixed DTE.
No Connect....BUSY,NO CARRIER, NO ANSWER, NO DIALTONE
The strings returned by the modem when it fails to make a
successful connection. Remember to set 'X' to it's highest legal
value for your modem to make full use of these replies. EaziLink
will abort it's count down and re-cycle more quickly if it
receives one of these replies from the modem. The default
strings are typical Hayes replies but note that unfortunately the
early WS3000 does not send most of them. Reply strings must be
separated by commas.
Fix DTE Rate..
Regardless of which baud rate is set in a service's dialling
directory, EaziLink will normally adjust the computer port to the
rate returned by the modem connect string, before going on-line.
In most cases this will normally be the baud rate set in the
service's directory entry. Some modems can be set to fix the
computer port rate and handle speed buffering between the actual
line baud rate and the fixed port rate. If you have such a modem
and have included the command in the Init string to hold the DTE
(computer port) speed then you must set this configuration field
to 'Yes' to prevent EaziLink from resetting the port rate -
otherwise leave this field set to 'No'. Modern high speed
modems with MNP etc. are best run with a fixed DTE where
possible.
Dialling Delay
When dialling out, EaziLink opens a window displaying details of
the remote service to be called. At the right hand side an
elapsed time counter is decremented every second whilst a
connection is attempted. When the counter reaches zero the
attempt is terminated and a second counter is started. When this
counter reaches zero the number, or the next number in the queue,
is redialled. This cycle is repeated until either a connection
is made or the user aborts the attempt with the ESC key. The
dialling attempt time for each service is specified in the
dialling directory entry - the delay between redials can be set
here in 5 second increments. Use the [+] and [-] keys to
increase and decrease the respective counter start values. Use
the ESC key to exit when you have set the required value. Please
note that the counters can be increased and decreased on a
temporary basis from the dialling window 'on the fly' whilst
dialling out, by use of the [+] and [-] keys. This can help in
cases where the connection attempt time can be seen to be too
short for a particular service - the user can intervene and
increase the time manually.
Flash-Back
The number of 24 line pages to be set aside for the flash-back
buffer can be set here to any value between 1 and 17 pages. Each
page uses about 4K of memory, so if you are tight for memory keep
this value small or use the SWapping feature described later.
The full 17 pages use 64K. Use ESC to exit when you have set the
required value.
File Paths
EaziLink enables the user to, optionally, specify paths where
certain file types are to be found or stored. This enables a
well organised working environment to be created:
+-------------------------| File Paths |------------------------+
| Upload Path : C:\EAZILINK\UPLOAD |
| Download Path : C:\EAZILINK\DOWNLOAD |
| Message Path : C:\EAZILINK\MESSAGES |
| Capture Path : C:\EAZILINK\CAPTURE |
| Image Path : C:\EAZILINK\IMAGES |
| Macro Path : C:\EAZILINK\MACROS |
| Script Path : C:\EAZILINK\SCRIPTS |
| Protocol Path : C:\EAZILINK\XFER |
+---------------------------------------------------------------+
Upload Path
This is the path where EaziLink expects files which are to be
uploaded to be found, if no file path is included in the file
name which the user is prompted to enter during the upload
operation. The default is the EaziLink main directory.
Download Path
This is the path where files downloaded from remote services will
be stored. The default is the EaziLink main directory.
Message Path
This is where the messages which are to be sent, using the Alt M
command, should be stored. The default is the EaziLink main
directory.
Capture Path
This is the default path for '.CAP' capture files. The default
is the EaziLink main directory.
Image Path
This is the default path for '.I40' and '.I80' image files. The
default is the EaziLink main directory.
Macro Path
This is the default path for '.KEY' keyboard macro files. The
default is the EaziLink main directory.
Script Path
Set this path to the directory where you will store the log-on
scripts. The default is the EaziLink main directory.
Protocol Path
This is where EaziLink looks for the external file transfer
protocol drivers. This path may be overridden by full path
name entries in the EAZILINK.PRO protocol definition file,
but there is no real advantage in doing so. The default is
the EaziLink main directory.
Utilities
External programs may be installed for use from within EaziLink
by filling in the following fields:
Editor Path
EaziLink allows you to name an editor of your choice, to be
invoked from the main menu and also using the Alt E command
whilst on-line. Enter the full path and name of the editor here.
Note: You MUST include the file name extension.
Filer Path
EaziLink allows you to name a file management program of your
choice, to be invoked from the Utilities menu and also by using
the Alt U command whilst on-line. Enter the full path and name
of the program here. Note: You MUST include the file name
extension.
Lister Path
The file listing program of your choice may be specified here.
The program can be invoked from the Utilities menu and also by
using the Alt U command whilst on-line. Enter the full path and
name of the program here. Note: You MUST include the file name
extension.
Note: In the case of the Editor, Filer and Lister the '%file'
system variable and the trailing semi-colon (;) are supported.
If the '%file' variable is appended to the full program path
name, separated from it by a space character, a file name is
requested from the user to be passed as a parameter to the
external program. If [ENTER] is pressed without any input, the
external program is invoked and no filename parameter is passed.
If [ESC] is pressed then a file window is opened for the user to
interactively select a file. If [ESC] is pressed at this stage
then the command is aborted. If semi-colon is appended to the
full program path name including any optional '%file' variable,
This time with no separating space character, then the external
program will pause on termination until a key is pressed - rather
like the Utility menu's Command option.
Example: C:\EAZIEDIT.EXE %FILE
Here a file name would be prompted for and passed to the external
editor, EAZIEDIT, when invoked.
Entry Format
This is the default dialling directory format which will be
offered when making new directory entries. It is also the
default used when dialling out in terminal mode accessed from the
main menu. If you are not sure whether a setting needs to be
changed - leave it at the default setting initially and try it.
+--------------| Default Directory Format |---------------+
| Prefix # : 1 |
| Baud Rate : 1200 |
| Data Bits : 8 |
| Parity : None |
| Stop Bits : 1 |
| Handshake : Xon/Xoff |
| Terminal : ANSI-BBS |
| Wrap On : Yes |
| Protocol : X |
| Strip Bit 7: No |
| Local Echo : No |
| Add LF : No |
| Dest. BS : Yes |
| Backspace : BS Code |
| Dial Time : 50 |
| Ascii CD : 7 |
| Ascii LD : 100 |
+---------------------------------------------------------+
Prefix # - The dialling prefix to use (1..3)
Baud Rate - Communication baud rate for the remote service.
Data Bits - Number of data bits.
Parity - Parity required - NONE, EVEN, ODD.
Stop Bits - Number of stop bits required.
Handshake - None, Rts/Cts (Hardware), Xon/Xoff (Software).
Terminal - Terminal type required by remote service.
Wrap On - Determines if line-end text wrap is allowed.
Protocol - Default file transfer protocol to be used.
Strip Bit 7 - Strip the top bit from incoming data.
Local Echo - Echo your own keystrokes locally YES/NO.
Add LF - Add line feeds to incoming returns YES/NO.
Dest. BS - Make Backspace characters destructive (delete).
Backspace - Convert Backspace codes to Delete codes YES/NO.
Dial Time - Maximum time for which to attempt a connection .
Ascii CD - Delay between characters when sending messages.
Ascii LD - Delay between lines when sending messages.
Host Mode
The host mode environment and mode of operation is controlled by
the following fields:
+------------------------| Host Mode |------------------------+
| Auto Answer : ~~~+++~~~AT X1 V1 S0=1 S24=5 ^M |
| Host Main Path : C:\EAZILINK\HOSTMAIN |
| Host Message Path : C:\EAZILINK\HOSTMESS |
| Host Download Path : C:\EAZILINK\HOSTDOWN |
| Host Upload Path : C:\EAZILINK\HOSTUP |
| Sysop's Name : SYSOP NAME |
| Sysop Password : SYSOP PASS |
| Log Host Calls : Yes |
| Default Chat ON : Yes |
| Open System : Yes |
| Speed Scanning : Yes |
| Baud Rate : 1200 |
| Fix DTE Rate : No |
+-------------------------------------------------------------+
Auto Answer.....~~~+++~~~AT X1 V1 S0=1 S23=1 S24=5 |
This is the modem control string required to set the modem in
auto-answer mode. The string should also ensure that baud rate
scanning is activated, if available. The various elements in the
default string above, have the following effect. '~~~+++~~~'
forces the modem into command mode, 'AT' Hayes attention command,
'X1' use extended result calls - enables callers baud rate to be
returned in the form 'CONNECT 1200' etc.,'S0=1' answer incoming
calls after 1 ring, 'S24=5' WS3000 modem specific - scans the
baud rates in 5 second steps to determine the callers baud rate.
If your modem is not reasonably Hayes compatible you may be
unable to use the Host mode.
Host Main Path
This is the main Host path where host mode system files, logos
etc. are stored.
Host Message Path
This is where the files containing the text of host mode messages
are stored.
Host Download Path
This is where you should put files which you wish to make
available to callers if you do not intend to make use of multiple
download areas.
Host Upload Path
This is where files uploaded by callers will be stored.
Sysop's Name
The Sysop must enter his/her name here. First and last name
only - exactly as you will enter your name when logging onto host
mode. Any messages from users addressed to the 'Sysop' and log-
off messages will then be directed to you.
Sysop Password
This is a special password which gives full access to the host
mode and also gives the remote caller access to the DOS shell on
your machine - BE VERY CAREFUL who you give this password to.
Log Host Calls
This setting determines whether incoming calls are to be logged
in HOST.LOG. HOST.LOG is created automatically in the EaziLink
main directory. (Note: Not in the host mode main directory). The
form of the log entry is the same as for the 'Usage Log' feature
described later, but the name of the caller takes the place of
the name of the remote host. In addition a '-' sign is appended
to the 'Elapsed Time' display if an abnormal log-off occurs (e.g.
line is dropped), whilst a '+' sign indicates a normal log-off
via 'Goodbye'.
Open System
If this is set to 'YES' then any caller will be given access to
the host mode provided they complete the log-on sequence
correctly. Otherwise only callers previously logged by the
system operator (Sysop) will be given access.
Speed Scanning
If your modem supports speed scanning in auto-answer mode and you
have initialised your modem, in the 'Auto Answer' string, to use
it then this should be set to 'YES'. If callers are to contact
the host mode at a single set speed then set this option to 'NO'
and set the selected baud rate in the field described below.
EaziLink will then assume a connection is established when a
carrier signal is detected rather than upon receipt of a
connect string from the modem.
Baud Rate
This is the baud rate to which the comms port will be set each
time the host mode resets itself ready for a caller. This
setting may be relevant whether you are are speed scanning or
not. If you are speed scanning this will usually need to be the
highest baud rate which your modem supports. Check your modem
manual to see which baud rate to set here.
Fix DTE Rate
This option enables modems which are capable of fixing the DTE
baud rate and speed buffering between line rate and DTE rate, to
be used in that way. See the same option in the 'Modem Control
String' section for more details.
Colour
Set the general display colour, window contents colour and window
frame colour by selection from the displayed foreground and
background colours. Each are set in turn as indicated by the
prompt above the sample window. The menu border style can also
be changed using the 'Y' and 'Z' options.
Alarm
The rather strident alarm which is sounded when both outgoing
and incoming calls are connected can be disables using this
option. The normal bell which accompanies error messages etc. is
not affected.
Log calls
A usage log file 'EAZILINK.LOG' can be turned on or off via this
option. If turned on, the log file will record details of each
remote service connected to during the course of a session.
Information includes the date, the time when the connection was
made, the name of the remote service and the duration of the
call. If the configuration is saved with this option turned on,
then EaziLink will automatically open the log at start-up and
close it at program termination. If EAZILINK.LOG already exists,
information is appended to previous log entries.
Example log entries:
* Log Opened: Tuesday June 20, 1989
1:49 p.m. | The Gas Lamp | 2400 BAUD
| Download | [E] TEST.ZIP
| Download | [Z] <UNKNOWN>
| Upload | [Z] ELINK30.ZIP
| Message | CLARKE.MSG
| Elapsed Time | 00:23:06
* Log Closed
Note: The second download was made using Zmodem - the file name
is sent in the header so EaziLink does not know the name. If you
wish to ensure that a name is always registered you could use the
%file variable in the protocol's download definition in
EAZILINK.PRO even though it is not needed - but this is less
convenient in use. Please note also that messages sent are also
registered in the log.
Mouse support
Simple mouse control can be activated via this option. The mouse
simulates the use of the cursor keys and the RETURN and ESC keys.
Moving the mouse forwards, backwards,left and right simulate
pressing the cursor up, down. left and right keys respectively.
The mouse left and right buttons simulate the RETURN and ESC keys
respectively. (Default: off)
Swapping
Since the Flash-back buffer can be as large as 64K if all pages
are defined, the swapping option has been introduced to enable
the Flash-back buffer contents to be swapped to disk temporarily,
freeing up this memory, automatically, whenever a shell-out to
DOS takes place. The phrase shell-out includes running
protocols, the external editor, utilities etc.
If turned on, the swapping takes place automatically whenever
host mode is entered and no further swapping within host mode
itself is required.
The swapped out buffer is read back in and restored after the
shell-out. (Default: off)
Save
Saves the configuration to the .CNF file. If this option is not
used then changes to the configuration apply only to the current
session and will be lost when the program is terminated. You may
wish the settings to be temporary if you are working in terminal
mode - in that case don't save.
Quit
Return to the main menu. Note: The configuration is NOT saved
unless the Save Set-up option is executed by the user.
THE DIALLING DIRECTORY
Each remote service you wish to contact regularly should have a
directory entry made for it. When the dialling directory is on
display a highlighted bar at the foot of the screen can be moved
horizontally to select the option required. Similarly a
highlighted remote service pointer can be moved vertically to
pick out the directory entry upon which the option is to operate.
The remote service pointer can be moved to just one row below
current entries to enable new entries to be added to the end of
the existing ones by use of the Edit option. Any one dialling
directory has a capacity of 99 entries.
+---------------------| Dialling Directory |--------------------+
| Name Of Service Phone Number Port Script |
+---+---------------------+-------------+------------+----------+
| 1 | SandSoft Support BBS| 0756 791298 | 1200-8-N-1 | EAZIHOST |
| 2 | The Gas Lamp | 0706 358331 | 1200-8-N-1 | REMOTE |
| 3 | Forth View BBS | 031 660 6680| 1200-8-N-1 | EAZIHOST |
| 4 | Prestel (Harrogate) | 0423 760111 | 1275-8-N-1 | PRESTEL |
| 5 | | | | |
| 6 | | | | |
| 7 | | | | |
| 8 | | | | |
| 9 | | | | |
|10 | | | | |
|11 | | | | |
|12 | | | | |
|13 | | | | |
|14 | | | | |
|15 | | | | |
+---+---------------------+-------------+------------+----------+
Dial Queue Edit LD-Calls Insert Kill Copy Move New Get Page Zero
Dial the selected entry.
If the Page option is pressed, another set of service details are
displayed thus:
+---------------------| Dialling Directory |--------------------+
| Name Of Service Calls Hours Last Date Last Time |
+---+---------------------+-----+-------+------------+----------+
| 1 | SandSoft Support BBS| 56 | 16:45 | 24/01/92 | 8.04 p.m.|
| 2 | The Gas Lamp | 13 | 8:15 | 15/01/92 | 9.12 p.m.|
etc...
Where for each service:
Calls Total number of calls made.
Hours Total hours:mins on-line.
Last Date Last date called.
Last Time Last time called.
Note: The Calls and Hours field can be cleared by using the Zero
option described later.
Dial
The selected entry is dialled. A dialling window is opened which
displays information about the remote service currently being
called including the status of the current attempt and also the
previous attempt. The queue field consists of one entry only -
the entry selected from the dialling directory. The dialling
attempt counter and the pause between attempts counter can be
increased or decreased temporarily by use of the '+' and '-' keys
respectively. Beneath the dialling window a modem monitor window
is opened which displays the response of the modem to the control
strings being sent by EaziLink. This enables a user to check
that the modem is indeed receiving the intended strings properly.
If a connection is made the connect string returned by the modem
is also echoed in the monitor window along with the baud rate at
which the connection has been made - where applicable. Whilst
dialling the SPACE key forces a recycle, and ESC aborts the
dialling and returns to the dialling directory.
It is possible to change the baud rate from the dialling window
to speed-up re-dial on those odd occasions when the line is too
weak to support a connection at your dialling directory baud
rate. This baud rate change is temporary and is only in effect
whilst the dialling window is open. To reset the baud rate use
the 'B' key. The baud rate can be changed whilst dialling out or
during the between attempts pause. If a queue is in operation,
use of the 'B' key temporarily suspends the queue - forcing the
current number to be called again at the new baud rate.
Otherwise the queue functions as usual - any temporary baud rate
previously set for a preceding entry is ignored and the current
entry's dialling directory baud rate is honoured. The connect
alarm can also be toggled whilst the dialling attempt is being
made.
Queue
A series of up to 10 directory entries may be entered into a
queue for dialling. Entries are added to the queue by putting
their index, i.e. position in the directory, in the queue.
Entries in the queue must be separated by commas or spaces thus:
7,12,9,22
Please note that whilst creating the queue, the directory list
can be scrolled as usual by use of the UP, DOWN, PGUP, PGDN,
HOME, END keys, to assist in the selection process.
The dialling window is opened and information displayed as
described in the 'Dial' option. Each entry in the queue is
dialled in turn until a connection is made with one of them. On
returning from the remote service the entry which was
successfully contacted is deleted from the queue and the next
member of the queue is dialled - etc. This process will continue
until either all entries in the queue have been successfully
contacted or ESC is pressed to return control to the dialling
directory. During dialling out the remaining entries still to be
contacted are displayed alongside the 'Queue' prompt. Queue
entries which have not yet been contacted are retained even if
the dialling directory is exited, thus the queue can be resumed
later.
Edit
The selected entry can be edited or if it is the blank end entry
a new entry can be defined by entering the following fields:
Name - The name of the remote service.
Number - The telephone number to be dialled.
Password - The password to be used with the remote service.
Script - The auto-log-on script to be run on connection.
Macro - A macro file to be loaded upon connection.
<!> - Optional extra modem commands.
The <!> field may optionally contain extra modem commands which
you want used for that particular service. Any commands here are
inserted in the relevant dialling prefix in place of the <!>
token embedded in the prefix string itself. This could be used
for setting up or disabling MNP or fixing the rate at which you
wish your modem to connect with the remote host. If you use this
mechanism, be sure to include modem commands in your 'Reset' or
'Init' strings to return your modem to any default state you
prefer so that changes made via <!> are in effect cancelled when
the next service is called.
(Note: Any macro file which was loaded prior to going on-line is
re-loaded when the connection terminates.)
The remaining fields are as described in the configuration
section under 'Default Entry'. The same quick editing system is
employed as that used during configuration - press ESC to exit
the edit mode.
LD-Calls
Up to 10 Long distance (or International) numbers may be
specified, numbered 0..9. Long distance numbers can be very
long, requiring country codes, area codes and delay characters as
well as the basic phone number. EaziLink allows up to 10 such
numbers to be defined, for each dialling directory, which are
then included in the dialling directory 'Number' field as #0..#9.
Thus if the LD-Call string '#5' was defined to contact an
American BBS then the string '#5' would be entered in the board's
dialling directory entry instead of the phone number. Note that
LD-Call strings are saved automatically whenever the dialling
directory with which they are associated is saved.
Insert
Just like Edit but the newly defined entry is inserted at the
selected position.
Kill
The selected entry is deleted and the gap created closed up.
Copy
The selected entry is copied to another position leaving the
original as it was. Move the remote service pointer to the entry
to be copied and press [C]. When prompted to do so, move the
remote service pointer to the second location and press ENTER.
Move
As Copy but the original entry is deleted. The directory can be
sorted into any order you like using this option.
New
This option enables a new, blank, dialling directory to be
created on disk, ready for loading via the Get option. Any
number of alternative dialling directories can be created in this
way.
Get
The Get option allows the loading of an alternative dialling
directory and it's associated '.LDC' list if applicable. The
dialling directory currently in use is updated, if necessary,
along with it's associated '.LDC' file, before the newly selected
directory is loaded.
Page
Toggles between the two alternative service detail displays as
illustrated above.
Zero
Clears the 'Calls' and 'Hours' fields in a services directory
entry.
Note: Whilst the 'Dialling Directory' window is on display, you
may select a service to call simply by typing it's number and
pressing RETURN. This feature works by assuming that any digit
typed should 'jump-start' the Queue facility and start a new
queue with that digit. Since this feature uses the Queue you may
enter one number or several separated by spaces or commas.
Pressing RETURN starts dialling off.
For example, to dial entry number 12 in your dialling directory
you may type the digits '12' followed by the RETURN key.
Note: In earlier versions of EaziLink, dialling cancellation (Via
ESC) took a long time with some modems. This was because they
did not return 'OK' on receiving the cancelling string - Only the
'Command OK' field entry was accepted as a positive response to
attempts to cancel dial-out. Those modems which did not issue
this response would run on to the full time-out of 15 seconds or
so. Any of the strings in the 'No Connect' field are now also
accepted as proof of the modem's response to dial cancellation.
In the case of the Dowty Quattro SB2422, for example, the string
'(Aborted!)' should be added to the 'No Connect' strings since
this is what the Quattro returns on dialling cancellation. Other
modems may require other strings to be added.
ON-LINE OPTIONS
Whilst on-line a number of options, invoked by PGUP, PGDN and Alt
key combinations, are available. Many are common to the
scrolling BBS terminals (ANSI-BBS and TELETYPE) and the frame
based services (VIEWDATA). Where an option is not applicable to
a particular terminal this is indicated. When the Viewdata
terminal is in operation all on-line options are displayed on the
right hand side of the screen. In the case of the other BBS
terminals the on-line options are displayed automatically if the
Alt key is held down for more than a second or so.
Note: To see the full list of on-line options, at any time, you
should press Alt O.
PGUP
The page up key initiates an Upload file transfer. A list of
file transfer protocols is presented to select from. When a
protocol has been selected a window opens prompting for the name
of the file/s to be uploaded - enter the file name/s and press
ENTER. Now the external file transfer driver takes over and the
file transfer begins. Upon completion an alarm will sound and
control returns to EaziLink. EaziLink has a file name guessing
feature which offers the file name which it thinks you will enter
when you are prompted for the file name. This feature is not
available in Viewdata mode. If the guess is wrong use ^Y to
clear the input line and enter the correct name.
PGDN
The page down key initiates a Download file transfer. This works
as the Upload operation above but, of course, downloads files
from the remote service. Some protocols, like Zmodem and Ymodem-
batch, do not require a file name to be entered at the local
terminal so the file name window may not be displayed for
downloads. This is controlled by the inclusion or absence of the
'%file' system variable in the protocol command line in the
EAZILINK.PRO file. (see the 'FILE TRANSFER PROTOCOLS' section).
The file name guessing feature described in PGUP above, applies
here also.
Alt C
Allows a text capture file to be opened, closed, suspended or
resumed. Text from the remote host which is displayed on the
screen is stored in a named disk file. The default capture file
is EAZILINK.CAP in the 'Capture Path' directory. The capture file
should normally be given the extension '.CAP' or no extension in
which case EaziLink adds the '.CAP' extension to the name. It is
possible to specify other extensions but it should be noted that
such files will not be listed in the file selection window
accessed via the ESC key. If the file already exists, text is
appended to it - otherwise a new file is created. With scrolling
services this facility can only handle text received in a simple
teletype fashion and cannot accurately represent ANSI screen
control sequences, deletions or editing carried out 'live' by the
user. With Viewdata services whole frames are captured in one go
IMMEDIATELY BEFORE the frame is CLEARED from the screen. Please
note that in Viewdata mode text only is captured - graphic
characters and colours are ignored.
On pressing Alt C If a capture file is not currently open then
you are prompted to enter a file name to receive the text or
accept the default file name offered. If a file name is entered
without a path element then the 'Capture Path' is assumed. The
default file name is EAZILINK.CAP.
If the named capture file already exists, you are asked if you
want to append newly captured text to the old file - If you
answer 'N'o, the old capture file is cleared first.
If a capture file is already open then you are offered the option
of temporarily suspending capture (Suspend), closing the capture
file (Close) or exiting without change (Exit - also ESC).
If a capture file is open but suspended then the Suspend option
above is replaced by a Resume option to resume text capture.
When the capture facility is in operation an asterisk appears at
the bottom right hand extremity of the status line, as
confirmation. Capture files are plain ASCII files and can be
viewed in any ASCII text editor which accepts IBM graphics
characters. (our own EaziEdit is ideal)
Note: Capture files are ALWAYS closed on connection termination.
Alt D
Invoke a DOS shell - as in the main menu equivalent. Please note
that any capture file open at the time is closed temporarily when
entering the DOS shell and re-opened on return. This allows the
capture file to be manipulated within the shell, if desired,
without the danger of corruption.
Alt E
Invokes the editor specified in the configuration section. The
same capture file security feature is used as in the Alt D
option.
Alt F
Displays the Flash-back buffer for viewing of scrolling text or
Viewdata frames displayed earlier in a session.
Alt G
This option (Go script) invokes and runs a script who's name can
either be entered in the normal file name prompt box or, if ESC
is pressed, may be interactively selected from a file pick window
which defaults to looking in the 'Scrip Path' directory for files
with the extension .SCR.
Any attempt to run a script this way whilst another script is
already running, is met with an error report to that effect.
Alt H
Hangs up the modem by sending the hang-up string specified in the
configuration section OR by lowering DTR. Only use to disconnect
from a remote service if all normal exit attempts fail.
Alt I
Saves a screen image to the disk file selected using the Alt R
option. Images saved in this way are in full colour and can be
viewed off-line using the View option on the main menu.
Alt K
This option enables the user to control all the keyboard macro
options described in the main menu section under 'Key', whilst
on-line.
Alt L
This option enables most of the link settings like baud rate,
parity, stop bits, local echo, line-wrap etc., to be changed
whilst actually online or in terminal mode. Changes made in
terminal mode actually change the default 'Entry Format' normally
accessed via the configuration section. Changes made via 'Alt L'
are however only temporary unless saved via the configuration
sections 'S'ave option. Changes made via 'Alt L' whilst actually
online only apply to the current call and do NOT alter the
dialling directory options for that service.
Alt M
Sends a message file. In response to the prompt, enter the name
of the message file to be sent. If no entry is made at all and
ENTER is pressed then the operation is aborted. If a file name
is entered but no path component is specified then the 'Message
Path' set in the configuration section is assumed and the file,
if found, is sent. If the file name entered forms a mask
containing any '*', '?' wild card characters then a file window
is opened displaying all files which match the mask ready for
interactive selection using the highlighted cursor bar. If ESC
is pressed from the initial prompt then the entry '*.MSG' is
assumed and the file window is opened, as in the wild card case
described above, ready for selection. Files shown in the file
window will initially be those in the 'Message Path' directory
which match the wild card mask.
When a message is transmitted, the delay specified in the
dialling directory 'Ascii CD' field is inserted between each
character sent and the delay in 'Ascii LD' is inserted between
lines. Different remote service editors may require different
delays - start with both at zero and vary them until your
messages upload cleanly. The delays are in 1/1000 of a second.
This feature works in all terminal modes including Viewdata. In
the case of Viewdata files created by an ordinary text editor can
be sent and are converted to Prestel mailbox form during
transmission, taking advantage of the automatic word wrap. Lines
do not need to be kept to the 40 character wide format in the
editor but do take care not to exceed the maximum quantity of
text which a single Prestel mailbox frame will take. Before a
message is sent, you are asked if you wish to mark it as sent
(i.e. give it the '.SNT' extension) - this can help you to keep
track of which messages you have actually sent since only '.MSG'
files are displayed in the default message selection window and
the '.SNT' files are thus no longer visible.
Note: An AsciiCD value of '999' is interpreted by EaziLink in a
special way. Some remote services are very speed sensitive when
receiving prepared messages and often vary in response depending
on user load at any particular time - Prestel is a prime example.
In such cases characters will be lost if the rate of transmission
of the message is too high. Using an AsciiCD value of 999 tells
EaziLink to wait for each character sent to be echoed back before
sending the next. This should prevent the remote service from
being out-paced. You would be well advised to use this feature
in all Prestel entries.
Alt O
Display the main online options help screen.
Alt P
Toggles the printer On/Off. Text sent to the terminal is echoed
on the printer - rather as 'Capture' saves text to a disk file.
The textual content of Viewdata frames is printed out in one go
following the same logic as that applying to the Capture
to disk facility.
Alt R
Allows the images saved using Alt I to be redirected to an image
file of your choice. Viewdata image files have the extension
'I40', whilst other BBS image files have the extension 'I80'. At
program start-up the default file name will be either
EAZILINK.I40 or EAZILINK.I80 located in the 'Image Path'
directory. Remember that changes to the file name here will
affect the R(edirect) file in the main menu View mode and vice
versa.
Alt S
In Viewdata text and high resolution EGA modes, this option
allows the user to Snap the current frame image and echo it on
the right hand side of the screen. Alternate presses of Alt S
echo then clear the echoed image. One use for this feature is to
Snap a message to you before making your reply on the active
frame. You then have all your recipients details on view.
In scrolling terminal modes, 'Alt S' toggles the status line at
the foot of the screen on/off. When off all 25 lines are
available to the system for the display of text from the remote
service.
Alt T
This option toggles terminal emulation between ANSI-BBS, VT100,
VT52 and TELETYPE with scrolling BBS systems and toggles between
Viewdata text, scrolling TELETYPE/VT100/VT52/ANSI-BBS, Viewdata
CGA mode 4 graphics and Viewdata EGA graphics displays with
Viewdata systems. With scrolling systems this can be used to
'change horses in mid stream' or to observe incoming ANSI codes
in the raw. In Viewdata mode, EGA modes will only be available
if your machine is fitted with an EGA or VGA card and a 'ECD' or
'CD' display. The 'CD' display will only enable the 'LOW EGA
GRAPHICS' mode to be used. The mode 4 graphics display will only
be available if your machine is fitted with a colour video
adapter and EaziLink was able to find and load the file
VIEWDATA.FNT. The ability to change from Viewdata to scrolling
TELETYPE or ANSI-BBS etc. enables the system to accommodate
scrolling services which are accessed as gateways from Prestel.
Note: The 'VIEWDATA.FNT' file need not be present to enable the
CGA mode 4 graphics to be used on EGA systems since EaziLink uses
the EGA's built in 8x8 font for the CGA graphics.
Alt U
This option causes the Utilities menu to be displayed. The
utilities available are the same as those described for the
Utilities option invoked from the main menu.
Alt X
When using Xon/Xoff handshaking it is possible for line noise to
generate the Xon character, causing the comms link to apparently
hang-up. What has probably happened is that your transmission
has been turned off accidentally and will not normally resume
unless by shear chance line noise generates a cancelling Xoff.
You can recognise this situation by the fact that your keystrokes
have no effect and do not cause the TX light on your modem to
flicker (your keystrokes are being stored in your comms buffer
but are not being transmitted). If this situation arises, you
simply press Alt X - this overrides the Xon and enables your
transmission to resume.
Alt Z
This option aborts any currently running script. Use this if the
script goes astray and you wish to take over manually.
Alt =
This toggles IBM key mode on/off. When on, IBM extended key
code combinations are sent down the line in response to keys
pressed on the keyboard. This is a special mode which needs to
be used to drive remote control software like Doorway (tm) and
our own EaziDoor system. Because such remote control systems
require the full 25 line screen, 'Alt =' also toggles the status
line, at the foot of the screen, off too. Do not use this mode
for normal BBS communications.
Alt 0
This option sends a BREAK signal to the remote service. This
signal is rarely needed but is required by some systems to
control certain aspects of their operation. (Not Viewdata)
Ctrl R
This is the Viewdata Reveal key. This forces the display of
concealed text on a Viewdata frame. (Viewdata only)
Ctrl P
This option toggles between the two available graphic colour
palettes when using the Viewdata mode 4 graphics emulation.
TERMINAL EMULATION
TELETYPE
This is the most basic terminal type. Characters received are
simply sent to the screen 'typewriter fashion'. No special key
translation takes place on keystrokes transmitted via the local
PC's keyboard.
ANSI-BBS
This emulation provides support for those boards which offer
ANSI-BBS displays. It is capable of driving most full screen
editors, like the one built in to Searchlight BBS.
The keyboard is mapped to produce the same keyboard translation
as the VT100 emulation described below.
VT100 & VT52
This emulation provides support for DEC VT100/VT52 based
services. The emulation does not include 132 column, double
height/width characters or printer sequences. These limitations,
mainly imposed by the PC's hardware limitations, should not
generally prove to be a problem in practice. The emulator
supports VT52 in the VT100's VT52 compatibility mode. The
remote host can send a command to the VT100 emulator to switch
it to VT52 mode - In such cases the status line is updated
automatically to reflect the change in emulation.
Note: The standard state for line-wrap with VT100 services is OFF
whilst EaziLink's ANSI-BBS line-wrap is ON. Some VT100 services,
though not all, need the DEL character to be sent for Backspace
delete.
The VT100 emulation supports 'Alternate Keypad Mode' and also
'Application Mode' when the relevant control sequence is received
from the remote host.
The cursor keys plus HOME, END, DEL and Backspace are supported
and the function keys F1..F10 and Shift F1..Shift F10 are
supported - representing the numeric key pad of the VT100. The
normal function keys represent the left side of the VT100's
numeric keypad and the Shifted function keys the right side as
follows:
IBM Function Keys DEC VT100 Keypad
Normal Shifted
F1.....F10 F1.....F10
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
|PF1 | |PF2 | |PF3 | |PF4 | |PF1 | |PF2 | |PF3 | |PF4 |
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
| 7 | | 8 | | 9 | | - | | 7 | | 8 | | 9 | | - |
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
| 4 | | 5 | | 6 | | , | | 4 | | 5 | | 6 | | , |
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
| 1 | | 2 | | 3 | | E | | 1 | | 2 | | 3 | | E |
+----+ +----+ +----+ | N | +----+ +----+ +----+ | N |
+------------+ +----+ | T | +------------+ +----+ | T |
| 0 | | . | | R | | 0 | | . | | R |
+------------+ +----+ +----+ +------------+ +----+ +----+
On an AT extended keyboard a function key template like this
could be made:
SHIFTED
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| PF3 | PF4 | 9 | - | 6 | , | 3 |ENTER| . |ENTER|
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| PF1 | PF2 | 7 | 8 | 4 | 5 | 1 | 2 | 0 | 0 |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
NORMAL
Examples: Pressing F2 will send the VT100 PF2 key whilst pressing
SHIFT+F10 sends the VT100 ENTER key.
VIEWDATA
This terminal type emulates the frame based terminals used by
Viewdata systems such as Prestel. The basic emulation is
character based and will function on any of the common IBM video
adapters. This form of emulation uses standard IBM ROM
characters to emulate the graphic shapes. The emulation supports
all colours and flashing characters. If you use Viewdata
services to receive and send textual information, rather than to
admire the art work, you will find this emulation satisfactory.
The Alt T command can be used to switch to other emulations i.e.
TELETYPE/ANSI-BBS/VT100/VT52 and, on machines fitted with a CGA,
EGA or VGA colour video adapters, a CGA mode 4, four colour,
graphics emulation is available. On machines fitted with an EGA
or VGA adapter, high and low resolution EGA graphic emulations
are also available. In all graphic modes all mosaic shapes, both
contiguous and separated, and double height characters are
accurately reproduced. Only 4 colours are available on a CGA in
mode 4 and these are used to create the display but true full
colour emulation is not possible. Full colour and graphic
fidelity is offered in the EGA modes - the high resolution EGA
mode also offers the 'snap' feature (invoked via Alt S).
Flashing characters are supported only in the text and EGA high
resolution graphics modes. It is possible for the EGA flashing
characters to flash against the same characters of another colour
which is NOT the current background colour. This is not a bug
but is a limitation of the hardware flashing method EaziLink uses
which only allows one background colour per flashing foreground
colour in the same frame - the vast majority of frames containing
flashing characters will be displayed as Prestel intended.
Most of the on-line options, including continuous frame capture,
are disabled in graphic modes so toggle back to basic text mode
emulation to use them. In CGA graphics mode Alt P will toggle
the display between the two colour palettes available in mode 4.
Please note that if you have a machine fitted with a MDA or HGC
monochrome adapter, EaziLink will disable access to Viewdata
graphic modes. In such cases pressing Alt T simply enables the
choice of TELETYPE/ANSI-BBS/VT100/VT52 modes - the graphic modes
are excluded from the menu. This will also be the case, on a CGA
based system, if EaziLink failed to find and load VIEWDATA.FNT in
the main EaziLink directory.
The TELETYPE/ANSI-BBS/VT100/VT52 scrolling modes have been
included to take advantage of scrolling services made available
via gateways from Prestel. Whilst in scrolling mode EaziLink
behaves exactly as it would in the main scrolling emulations e.g.
image files switch from the 'I40' to the 'I80' type etc. When in
scrolling mode, return to the main Viewdata system BEFORE
switching EaziLink back to text based Viewdata mode. EaziLink
sends the frame refresh sequence automatically - thus ensuring
that the first Viewdata frame is displayed cleanly on returning.
Keyboard translation takes place to support the use of the cursor
keys and the hash key (Shift 3). The following IBM keys are also
translated:
DEC HEX IBM VIEWDATA
91 5B [ (Left arrow)
92 5C \ (1/2 symbol)
93 5D ] (Right arrow)
94 5E ^ (Up arrow)
95 5F _ (Pound sign)
123 7B { (1/4 symbol)
124 7C | (Double vertical)
125 7D } (3/4 symbol - graphic modes only)
126 7E ~ (Divide sign)
In Viewdata mode only, the enquiry code (code 5), sent by the
remote host, is recognised and stored in the history buffer where
it can be detected in a script like this:
Await "^E"
Note: The enquiry code is not seen on-screen. At least one
Viewdata service sends an enquiry code and requires an immediate
ID number response - This mechanism will handle such situations.
MACROS
EaziLink supports powerful keyboard macros which can be used to
carry out a wide variety of tasks both on and off-line. Please
note that macros can only be used within EaziLink - they will not
work whilst in the DOS shell. Macros automate keystrokes and are
the equivalent of the operator pressing the keys represented in
the macro. Macros may contain ordinary characters and escape
sequences used to represent special keys.
Characters in the range '@'..'[', prefixed with a '^' symbol
generate appropriate CTRL keystrokes, in the same way that the
'^' is used in modem control strings. Some particularly useful
codes are:
^M Equivalent to the RETURN key.
^[ Equivalent to the ESC key.
^H Equivalent to the BACKSPACE delete key.
^Y Equivalent to keying CTRL Y - clears the line when editing.
In addition to the control key sequences like '^M','^H' etc. and
system variables like '%path' (see: SYSTEM VARIABLES), the Alt
key combinations used within EaziLink can also be entered into a
macro by prefixing the appropriate letter with the '@' symbol.
For example the macro...
@R^YE:\IMAGE^M
would, if pressed whilst on-line, invoke the image redirection
window (@R) clear the current file path and name (^Y) and enter
'E:\IMAGE' as the new image capture file path and name, the
operation is completed with a carriage return (^M).
To enter the '@' character itself into a macro use '@@', just as
'^^' will enter the '^' character.
In addition a number of special tokens may be included within a
macro which are interpreted as the equivalent of pressing certain
special keys:
{u} Cursor UP
{d} Cursor DOWN
{l} Cursor LEFT
{r} Cursor RIGHT
{pu} PG UP
{pd} PG DN
{h} HOME
{e} END
{ins} INS
{del} DEL
{f1}-F1 {sf1}-SHFT F1 {cf1}-CTRL F1 {af1}-ALT F1
{f2}-F2 {sf2}-SHFT F2 {cf2}-CTRL F2 {af2}-ALT F2
{f3}-F3 {sf3}-SHFT F3 {cf3}-CTRL F3 {af3}-ALT F3
etc....
{f10}-F10 {sf10}-SHFT F10 {cf10)-CTRL F10 {af10}-ALT F10
The character/s in the curly brackets are not case sensitive -
tokens could be entered as say '{D}' or '{d}' with the same
effect. Macros can call other macros by including the
appropriate {cfn} or {afn} token in the macro - for example if
the following macros are defined:
CTRL F1 'The machine was {cf2) fast.'
CTRL F2 'extremely'
When CTRL F1 is pressed, the string 'The machine was extremely
fast.' would be produced. And if the following macro is defined:
CTRL F1 'This will repeat until ESC is pressed!{cf1}'
The macro would remain in a loop, repeating the text, until the
macro was cancelled by pressing ESC.
Please note that the '|' and '~' tokens can be used to represent
a RETURN and half second delay respectively, as they can in modem
control and script strings. The characters '{' and '}' cannot be
used in macros, other than in the special tokens listed above,
since they are used by EaziLink's internal macro processor.
Macros are not supported in host mode. Since macros can be
executed from almost anywhere within EaziLink, it is possible to
set one off accidentally in an inappropriate place. For this
reason the ESC key will terminate any macro which is currently
executing - this enables the user to kill a run-away macro in
it's tracks. The current maximum total length of nested macros
is 512 characters - if this is exceeded an error message is
generated.
A command line switch '/M' is supported to enable the user to
force EaziLink to load any macro '.KEY' file rather than the
default file EAZILINK.KEY. A further extra parameter may be
included to force a macro to execute automatically after EaziLink
has loaded. The general syntax is:
C>eazilink /mfilename.key macro
Where 'filename.key' is the name of the macro file to be loaded.
Please note that the extension may be excluded (EaziLink will
assume '.KEY' in such cases) and 'macro' is an optional macro to
be executed after program start-up.
For example:
C>eazilink /msetup.key {af1}
Would cause EaziLink to load the macro file 'setup.key',
automatically work through to the Main Menu and execute {af1} -
as if ALT F1 had been pressed by the user. Since macros can call
each other - a whole sequence of events could be triggered by
this simple mechanism. This mechanism is used to implement
EaziLink's auto-installation system.
If the '/m' is NOT followed by the 'filename.key' field, but the
optional 'macro' field is present, then the 'macro' is simply
executed from the Main Menu - for example:
C>eazilink /m dq2^M
Will go from the Main Menu to the 'D'ialling directory, select
'Q'ueue, enter '2', and terminate the queue input with RETURN
'^M' - Contact number 2 in the current dialling directory will be
called.
N.B. When the optional 'macro' parameter is included, keystrokes
required to reach the Main Menu are automatically made. The
'macro' keystrokes, 'ALT F1' in the example above, will be
triggered only when the Main Menu has been reached, REMEMBER to
take into account that the program will be displaying the Main
Menu when the macro is executed.
If the 'macro' parameter is not specified, EaziLink loads the
named macro file but the user must make the usual keystrokes
required to reach the Main Menu.
Note: EaziLink always looks for '.KEY' files in the 'Macro Path'
directory, as specified in the configuration 'File Paths'
section, unless a full path is included in 'filename.key'.
SIMPLE SCRIPTS
The EaziLink v4 script language is far more powerful than that
included in earlier releases whilst retaining compatibility with
the earlier script language. This section describes just those
few simple commands required to automate log-ons. The 'Advanced
Scripts' section later goes into the new script language in
detail.
Simple script files are used to automate the process of logging
onto remote systems. A script file is a text file which can be
created using any editor that produces standard ASCII text files.
When a connection is made, via the dialling directory, the script
file specified in the directory entry script field, if any, is
loaded and run automatically. The script works by waiting for a
particular prompt string from the remote host and then sending an
appropriate reply. To achieve this just three commands are
needed - AWAIT, REPLY and AWAKE. A fourth command MACRO has been
included to enable a macro to be run from within a script, which
can be very useful.
The general form the AWAIT command is:
AWAIT "String" Time
Where 'String' is the string from the host to be waited for and
'Time' is the maximum time in seconds to wait. If 'Time' is
excluded then a default of 30 seconds is used. Please note that
spaces and double quotes must be used as shown. If 'Time' is
exceeded without receiving the expected string from the host then
the script is aborted and an error message produced - the user
may then take over manually if desired.
The general form of the REPLY command is:
REPLY "String"
Where 'String' is the string to be sent to the remote host in
response to a successful AWAIT command. The 'String' in the
REPLY command may include System Variables for substitution (see:
SYSTEM VARIABLES) and may also include the control characters
'~', '^' and '|'.
The general form of the AWAKE command is:
AWAKE "String" Time
Where 'String' is the character or string of characters to be
sent to the remote host and 'Time' is the maximum time for which
the command is to try to awaken the remote host. If 'Time' is
excluded then a default of 30 seconds is used. This command
sends the 'String' to the remote host repeatedly until a response
of any kind is received from the host. 'String' may include the
control characters '~', '^' and '|'. This command can, for
example, be used to send an uncertain number of return characters
needed to make some services continue at certain places during a
log-in procedure.
The general form of the MACRO command is:
MACRO "String"
Where 'String' is a macro, consisting of characters and escape
sequences as described in the MACROS section earlier. This
command may be used for many things - if the line:
macro "@C^YPRESTEL^M"
appeared in the Prestel log-on script, it would ensure that the
whole of that Prestel on-line session was captured to the
PRESTEL.CAP file.
Any line in a script file which is empty or begins with one of
the characters '/', '.', ';' is treated as a comment and is
ignored by the script processor. Below is a typical script which
could be used for an EaziHost board.
/ EAZIHOST Auto log-on script
/ --------------------------
Await ">" 20
Reply "John Smith^M"
Await "Password:" 20
Reply "%password^M"
Please note the use of '^M' to send a RETURN after each response
( a '|' could have been used also) and the use of the system
variable '%password' which is replaced by the actual password for
the host stored in the dialling directory entry. (see System
Variables)
Be sure to store scripts in the directory which you specified in
the 'Script Path' field in the configuration section or they will
not be found by EaziLink.
Some of the supplied scripts may need to be changed for some
systems. For example the Opus script would need to be modified
if a front end mailer was being run in conjunction with the Opus
board.
Note: The script processor stores the last 1000 characters
received from the remote host and checks using 'await' only when
there is a pause in incoming characters - i.e. when the remote
host is waiting for a response. When a carriage return character
is received it is represented in the store by a '|' symbol. Thus
if a remote host sends the following prompt:
Enter your name
>
You could use 'await ">"', 'await "Enter your name"' or even
'await "Enter your name|>"' and all would do the job. The
character store is cleared when each 'await' command is satisfied
to ensure that earlier strings in the store cannot influence
future 'await' commands. The character store is also cleared
just before an 'awake' command is executed, to ensure that
'awake' can detect when the host makes any response to awake's
prompting. The await command is NOT case sensitive - 'Password'
is the same string as 'PASSWORD' as far as the script processor
is concerned. Remember how the system works when writing your
scripts and you should find it quite easy.
ADVANCED SCRIPTS
Overview
Whilst online, EaziLink holds the previous 1000 characters
received from the remote host in a special buffer - Note: this
will mean that in the case of Viewdata systems, a full non-
dynamic frame is held in the buffer at once which means that text
from anywhere on the frame can be used to trigger a script
response.
Strings of characters received in this way can then be used to
implement scripts which trigger actions by EaziLink dependent on
the received data. This store of characters is referred to as
'History' in the following text. Carriage returns, when received
from the host, are stored in the history as '|' symbols.
The 'Await' command, which is used to look for specific incoming
strings from the remote host, checks the history whenever there
is a pause in incoming characters.
The scripts can include labels and jump mechanisms which may or
may not be associated with a return - These are the equivalent of
Basic's Goto and Gosub commands.
The script system imposes no size limits on the scripts nor do
large scripts use up more memory than small ones. The language
is kept as simple as possible with few commands to learn but much
can be achieved using it. It is as simple as the DOS batch
language to use so you don't have to be a programmer to write
scripts for EaziLink.
Please note that scripts are read and executed directly from the
disk as required, making it possible to have unlimited script
size without using more precious RAM with larger scripts. The
downside of this method is that some script operations may
operate slowly on slow hard disk or floppy disk based machines.
A small disk cache, located out of the base memory preferably,
will be a help in such cases. In any case it is only really
character by character type operations which will appear sluggish
on slow systems - The user will usually be unaware of any
sluggishness otherwise.
After a successful 'Await' (or 'Found') command the history is
normally cleared to prevent a future 'Await' from responding to
an earlier string still held in the history. Sometimes you may
not want this to happen. You may want to check for another
string in the same history as a previously successful 'Await'
command - So this clearing can be controlled via 'AutoClear' and
'Clear' commands described later.
'Await', used in it's original way as a simple command, will
abort automatically if it fails, just as in previous EaziLink
releases.
Await can now be used in another way though. When the result of
an 'Await' statement is assigned to a boolean variable like this:
!B=Await "Password:" 20
then the boolean can be tested in an 'If' statement and program
execution can be made to jump to a new location in the script -
thus decision making is made possible in scripts.
The 'Awake' command may be used in it's original form, or may be
used in a boolean assignment - Just as 'Await' can.
Gosubs may be nested up to a level of 16 deep. Code jumped to by
a Gosub must end with a 'Return' command. The 'Return' will
return control to the line immediately following the line which
invoked the Gosub. Returns must ONLY be encountered as a result
of a Gosub call. Returns should NEVER be 'run-into' by general
script flow otherwise, or an error message will be generated. In
other words Gosubs and Returns are matched pairs - A Return can
only execute if it was preceded by a Gosub call.
26 numeric variables are supported. They are represented in
scripts as #A..#Z. Commands are available to enable assignment
and complex value tests to be performed on these variables or
expressions containing numeric constants, variables and
operators.
Numeric values have a range of -32768..32767. Attempts to use
values outside this range, or expressions creating values outside
this range, will result in an error message.
26 boolean variables are supported represented by !A..!Z. A
boolean variable can only hold the value TRUE or FALSE which are
equivalent to values 1 and 0 respectively. Booleans can be used
in expressions freely as if they were their 1 or 0 numeric
variable equivalent.
26 string variables are supported represented by $A..$Z. A
string variable can hold a number of characters from 1 to a
maximum of 80, or may hold nothing at all. String variables can
be used in expressions and anywhere else where numeric variables
can be used BUT ONLY IF they contain a string of digits which
represent a valid number.
All numeric variables are initialised to 0, boolean variables are
initialised to FALSE (0) and all strings are defined as empty
when a script starts.
A number of string functions are supported which can be included
in arithmetic expressions.
File handling routines are provided to allow as many as 10 files
to be open and in use at the same time.
Labels
Labels must start with a ':' but may consist of any other
following string of characters excluding the space character -
For example:
:Start
:Start2
:StartHere
:End - Script terminates here!
are all legitimate unique labels which can be used as the target
of a Goto or Gosub. Labels can be of any length and all
characters are significant. Since labels cannot include spaces,
a label is deemed to end at the first space after the ':' is
encountered so comments may be added after a space after a label
as in the last example above i.e. the label is ':End' and the
rest ' - Script terminates here!' is just a comment which is
ignored by the script processor. Other comment forms are
discussed below.
Note: Never use the same label name twice in the same script.
Comments
A comment may be added to your script file either on a line by
itself or at the end of any line. Such comments must be enclosed
in curly brackets. The last character on the line must be '}'
and the comment itself must NOT contain the '{' or '}'
characters. Examples
{ This is a comment }
$A="Hello world!" { Assign 'Hello world!' to variable $A }
Comments are used by the script writer to add helpful notes to
the code and are ignored by the script processor. In addition
any line starting with the '/' character is treated as a comment.
COMMANDS
Await, Awake, Reply, Macro & Abort all function exactly as they
did in earlier EaziLink releases for compatibility. Await and
Abort have additional capabilities now.
Await & Found
General forms: Await "String" T
!B=Await "String" T
!B=Await $P T
Where: 'String' is the sequence of characters which 'Await' looks
for from the remote host. It may, optionally,
contain references to variables prefixed with the '%'
symbol.
'T' is an OPTIONAL time in seconds for which 'String' is
waited for - Range 0..32767 - (Default 30 seconds).
Using the first, non-assignment, form of 'Await', the script will
be aborted with a 'Time-out' message on failure.
In the second general form '!B' represents any boolean variable
to which the result of the 'Await' will be assigned - '!B' will
become TRUE (1) if the 'Await' succeeds or FALSE (0) if not and
the script continues.
'Found' has exactly the same functionality as 'Await' - You may
find that 'Found' is more indicative of what you are actually
doing under some circumstances. If you are checking for various
strings in the history having turned AutoClear off, 'Found' looks
to be the more logical command to use and may improve the
readability of your script.
Reply & Send
General form: Reply "String"
or: Send "String"
or: Reply $x ( or #x or !x )
Where: 'String' is any sequence of characters to be sent to the
remote host. 'String' may contain special escape codes to
emulate the use of the Ctrl key.
The third variation can be used where a single variable is to be
sent - The numeric, boolean or string variable is expanded to
it's full ASCII value or content before being sent.
'Send' has exactly the same functionality as the 'Reply' command.
In both 'Send' and 'Reply' the string to be sent, enclosed in
quotes, may include a reference to one of the 26 numeric, boolean
or string variables. The variable must, when included within
quotes, be prefixed with a '%' sign for the conversion to digits
or string contents to take place. For example:
If the numeric variable #B contained the value 12 then:
Send "Area %#B please"
would be sent as "Area 12 please"
Boolean variables will convert to 1 or 0 dependent on whether
they are TRUE or FALSE. String variables convert to the string's
contents.
Macro
General form: Macro "MString"
Macro $M
Where: 'MString' is a string of characters which may include
special escape codes which emulate use of the Ctrl, Alt,
PGUP/PGDN keys etc. (See the EaziLink documentation for
macro syntax)
The 'Macro' command is pivotal to the the implementation of
powerful scripts in that it is the mechanism by which capture
files can be opened/closed, file upload/downloads can be started
etc. In fact virtually any actions which a human user can take
via key presses within EaziLink can be executed via the 'Macro'
script command. See the details for 'Macro' syntax in the
EaziLink documentation.
Macros should generally be used to drive the purely local
functions of EaziLink such as those actions which require Alt key
sequences or PGUP/PGDN keys etc. Normal online interaction with
the remote host should generally be carried out via the 'Reply'
or 'Send' commands.
Example:
Macro "@C^YMAIL.CAP~~^M"
Opens a capture file called MAIL.CAP. The various elements of
this macro are:
@C Alt C ('@' = Alt key )
^Y Clear the file name field
MAIL.CAP Type in the name of the capture file
~~ 1 second pause just so you can see what is happening.
^M Press [RETURN] to complete the command.
('^' = Ctrl key)
The macro command:
Macro "@CC"
will close the capture file when it is no longer needed.
'MString' may contain references to any of the 26 numeric,
boolean and string variables. The variable must be prefixed with
a '%' sign for the conversion to digits or string contents to
take place.
For example:
If the numeric variable #B contained the value 5 then:
Macro "@C^YMAIL%#B.CAP"
Would open a capture file called 'MAIL5.CAP'.
Boolean variables will convert to 1 or 0 dependent on whether
they are TRUE or FALSE. String variables convert to the string's
contents.
In the unlikely event of you actually wanting the strings '%#',
'%!' or '%$' to be included in a macro literally, without
conversion, use the '^' to break up the pattern like this:
Macro "Send this without conversion %^#B"
Note: Script execution is suspended until all keystrokes included
in a macro are removed from the key buffer and used by EaziLink.
This prevents the script from running ahead of macro execution
which could present timing problems in certain situations.
Awake
General forms: Awake "String" T
!B=Awake "String" T
!B=Awake $P T
Where: 'String' is a string of characters to be sent to the remote
host. 'T' is an OPTIONAL time in seconds for which the
remote is to be sent 'String' and wait for a response.
'T' is in the range 0..32767 - (Default 30 seconds). Any
response by the remote host is taken to be success.
'String' may include the control characters '~', '^' and '|'.
Using the first, non-assignment, form of 'Awake', the script will
be aborted with a 'Time-out' message on failure.
In the second general form '!B' represents any boolean variable
to which the result of the 'Awake' will be assigned - '!B' will
become TRUE (1) if the 'Awake' succeeds or FALSE (0) if not and
the script continues.
'Awake' is used to prompt those systems which require a number of
keypresses to be received before they go into action when you log
on. If 'T' expires the script aborts.
Abort
Abort is slightly more flexible than it was in EaziLink v3
scripts in that it may take an optional string, in double quotes,
as a parameter. If the string is present it is displayed in an
error box as the script is aborted - Otherwise the abort is
'silent' just as in earlier releases of EaziLink.
Examples:
Abort
Abort "Failed to receive 'Password:'"
Message
General forms: Message "String"
Message "String" T
Message $R
Where: 'String' is a message to be shown in a pop-up box on the
screen. '$R' is a string variable, the contents of which
are to be displayed in the pop-up box.
'T' is an optional time parameter which defines, in
seconds, the maximum time for which the message will be
displayed. If no 'T' parameter is present the display
can only be terminated by use of the ESC key.
The message box is cancelled by pressing [ESC], or when 'T'
seconds have elapsed, and the script continues.
Exit
General form: Exit
The normal way to terminate a script. A script is also
terminated if the script flow reaches the end of the script file.
Goto
General form: Goto LAB
Program control jumps to the label 'LAB'. No return is involved.
Gosub
General form: Gosub LAB
Program control jumps to the label 'LAB'. A return address is
stored and program control is returned to the line immediately
following the original Gosub command when the 'Return' command is
encountered.
Return
General form: Return
Returns control to the line immediately following the last Gosub
command. Return may be used as a command on it's own or may be
executed as the result of an 'If' evaluation. (See 'If' )
If
General form: If Expression then Action1
or: If Expression then Action1 else Action2
Where: 'Expression' can be any arithmetic/logical expression, as
defined in the Variables section, which evaluates to TRUE
or FALSE (1 or 0)
'Action1' is any ONE valid command or statement which will
be executed if 'Expression' is TRUE.
'Action2' is an OPTIONAL command or statement to be
executed if 'Expression' is FALSE.
The 'Actions' may be assignments, jumps (Goto or Gosub) etc.
The 'Action' can NOT be another 'If' statement. If a 'Menu'
command is the be one of the 'Actions' make sure the string '
ELSE ' is NOT used as a menu options.
Examples:
If #G=5 then goto End else goto Loop
If #D>#A AND ((#A<=10) OR (#A=0)) then gosub Do else gosub Don't
If #X>10 then #X=1 else #X=#X+1
If Exists($F) then Append(0) $F else Create(0) $F
Notes
- Any valid command or statement can be executed by an 'If'
statement, the only other course of action possible is that the
command will allow the script to fall through to the next line if
the command has only a 'then' component (no else section) and the
'Expression' evaluates to FALSE (0) - e.g.:
If !B then goto SendPassword
here if the boolean variable '!B' is TRUE (1) then program
control jumps to the label 'SendPassword', otherwise program
control simply continues on the next line. Notice that actual
labels have a leading ':' symbol but references to them elsewhere
do not.
- If Gosub is used rather than Goto then the current script
position is stored and the code jumped to must be a section of
code terminated by a 'Return' command. The 'Return' command will
return program control to the line immediately following the line
which made the Gosub call.
- Full expression evaluation is ALWAYS performed - Short circuit
logical evaluation is NOT supported.
- Actions may be ONE command or statement ONLY.
IfNot
This is exactly the same as the 'If' statement except that it
applies the opposite logic - i.e. 'Action1' is executed if the
Expression is FALSE and 'Action2' is executed if the Expression
is TRUE.
Dos
General forms: Dos
Dos $C
Dos "CommandLine"
Dos "CommandLine;"
The first form simply invokes a DOS shell which must be left by
entering 'EXIT' at the DOS prompt to return to the script.
The other forms require a parameter which specifies a program or
DOS command to be run by the command processor. Normally control
returns to the script as soon as the invoked program terminates.
To make the program pause for a key press before returning to the
script, put a semi-colon after the 'CommandLine' as shown in form
4 above.
As well as running external programs, The 'Dos' command can be
used to carry out any DOS internal commands - For example:
Dos "del temp.txt" {deletes file temp.txt}
Dos "ren %$O %$N" {renames file name in $O to that in $N}
Just as in shell-outs elsewhere in EaziLink, the main EaziLink
directory is returned to after a 'Dos' call, regardless of
whether the directory is changed in the DOS shell or not.
Chain
General forms: Chain "ScriptName"
Chain $S
Where: 'ScriptName' is the name of another script to be chained
to. The name may be simple with no extension (TEST)
or may have a '.SCR' extension (TEST.SCR) or may be a full
path name (C:\EAZILINK\SCRIPTS\TEST.SCR). Where no drive
or path elements are used the EaziLink default scripts
directory is assumed.
The 'Chain' command provides a means of leaving one script to run
another - The original script is NOT returned to after the
chained script terminates. When a new script is switched to in
this way, all variables are cleared and all script file handles
are closed before the chained script is executed.
A script executed via the chain command may itself terminate by
chaining to another script or even by chaining to the original
script which first invoked it.
REMEMBER: Variable contents and open files are NOT preserved
during chaining but see the Save and Load commands below.
Save
General form: Save "filename"
Save $V
Where: 'FileName' is the name of a file to which the current
variable values are to be saved. '$V' is a string con-
taining a file name to which the variables are to be
saved.
This mechanisn saves all 26 numeric variables, boolean variables
and string variables to the named file. These variable values
can then be read back in if required by the Load command.
Note: The elements of the script's disk file handling system are
NOT saved by this mechanism.
This mechanism is particularly useful when you want a chained
script to take on the values of the parent script.
Load
General form: Load "filename"
Load $V
Where: 'FileName' is the name of a file from which the variable
values are to be read. '$V' is a string containing a file
name from which the variables are to be read.
This mechanisn reads in all 26 numeric variables, boolean
variables and string variables from the named file which has
previously had variable information written to it using the Save
command. These variable values are then assigned to the actual
variables in the current script.
This mechanism is particularly useful when you want a chained
script to take on the values of the parent script.
AutoClear
General form: AutoClear on
or: AutoClear off
The 'Await' command, by default, clears the history if it makes a
successful match. AutoClear allows this automatic clearing to be
turned on or off within the script.
You may, for example, after a successful 'Await', want to make a
further test for another string in the same block of history
bytes - In this case you would use the command 'AutoClear off'
and, maybe, restore it later with 'AutoClear on'.
Clear
General form: Clear
Used, if required, when AutoClear is off, to clear the history
manually.
Delay
General form: Delay T
Where: 'T' is the length of time in seconds (range 0..32767) for
which the script is to be delayed.
Bell
Sounds the computer's bell.
Error
General form: Error on
or: Error off
When a script command results in an invalid operation being
performed it normally aborts the script with an error message.
Sometimes it is much better to temporarily disable the automatic
error abort mechanism and test for the error after the operation
has been executed. The error can be detected via a special
'Error' boolean variable maintained by the system, which can be
tested like any other boolean in an 'If' statement.
For example suppose you have a script asking for a numeric input
and wish to force the user to make a valid input:
:Loop1
$A=Input "Enter a number [0..100]: " 3
Error off
#A=$A
Error on
If Error OR (#A<0) OR (#A>100) then goto Loop1
The above code will loop until a valid numeric input is made.
Without the 'Error off' command the script would have aborted on
a non-numeric input when the '#A=$A' line was executed.
IMPORTANT: Keep Error off/on commands tight around the specific
command to be tested and test AFTER the 'Error on' command. The
act of testing for the error clears the internal error flag so if
you need to test error more than once, assign 'Error' to one of
the general boolean variables like this:
!E=Error
If !E & #A=5 then goto etc...
If !E then goto etc...
Without the assignment to '!E', Error would only have been
correct for the first test which would clear the error before the
second test got hold of it.
The 'Error off/on' commands do not affect straight forward
command syntax errors which will always abort a script in any
case.
Menu
General form: #A=Menu 1st 2nd 3rd
Where: '#A' represents any of the 26 numeric variables to which
the selected menu option will be assigned. Options are
numbered starting from 1. Note: Pressing ESC assigns 0 to
the variable.
'1st','2nd','3rd' are options to appear on a pop-up menu
(max 20). Each option may have a maximum of 28
characters. The first non-lower-case character of each
option acts as a hot key for the selection of that option.
The Menu command allows a user to, interactively, choose the
course of action which a script should take dependent on options
selected from a pop-up menu. The jump itself is made via 'If'
statements which test the numeric variable to which the menu
option selected has been assigned.
The menu options must not contain spaces - Spaces may be replaced
by the underscore character which will be switched for a real
space before being displayed. Any character can be made the hot-
key for an option by preceding the required character with a '^'
symbol.
For example:
:Again
#A=Menu Exit Go_Forward Go_^Back
if #A=0 then goto Again
if #A=1 then goto End
if #A=2 then goto Forward
if #A=3 then goto Back
etc...
would result in a pop-up menu like this:
+--------| Script Menu |---------+
| |
| Exit |
| Go Forward |
| Go Back |
| |
+--------------------------------+
The highlighted characters would be 'E', 'G' and 'B'
respectively. The following 'If' statements control the script
flow dependent on which menu option is chosen.
Input
General form: $A=Input "Prompt" L
This is basically a special form of string variable assignment
which enables a user to enter a string of characters, in response
to a prompt, which is then assigned to the target string
variable.
See the section on 'String Variables' for full details.
Edit
General form: $A=Edit "Prompt" L
Just like 'Input' but allows the existing contents of the string
variable to be edited.
See the section on 'String Variables' for full details.
Select
General form: $A=Select "Mask"
This is basically a special form of string variable assignment
which enables a user to select a file name interactively via a
file 'pick' window as used in other places in EaziLink.
See the section on 'String Variables' for full details.
YesNo
General form: !B=YesNo "Prompt: " D
This is basically a special form of boolean variable assignment
which enables a user to reply to a question with a simple Yes or
No. The result is assigned to the boolean variable.
See the section on 'Boolean Variables' for full details.
Slice
General form: $A=Slice($B,From,To)
This is basically a special form of string variable assignment
which enables a user to assign a specified slice of one string to
another.
See the section on 'String Variables' for full details.
VARIABLES
Numeric variables
The 26 numeric variables, #A..#Z, can be assigned and used in
expressions. Typical assignments are:
#A = 26
#M = (#A+#C)*6
#V = #V+1
#H = #J MOD 2-#Z
#X=Menu First Second Third etc...
The last variation is a special case - See the 'Menu' command
earlier for details.
Expressions can include numeric variables, boolean variables,
numeric constants, functions, string variables, IF they contain a
proper ASCII representation of a valid number, and any of the
following elements:
* Multiplication
/ Division (note: integer division result only)
DIV Division ( - ditto - )
MOD Modulus (note: modulus of integer division )
+ Addition
- Subtraction
AND Logical AND
OR Logical OR
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
= Equal to
<> Not equal to
TRUE True (ordinal value 1)
FALSE False (ordinal value 0)
Normal operator precedence is observed in expressions and
parentheses can be used to force the evaluation order.
For Example:
5+2*3 Evaluates to 11
(5+2)*3 Evaluates to 21
Expressions can be tested logically using the 'If' statement
which has the general form:
If Expression then Action1 else Action2
Where: 'Expression' can be any arithmetic/logical expression, as
defined above, which evaluates to TRUE or FALSE (1 or 0)
'Action1' is a command/statement to be executed if
'Expression' is TRUE.
'Action2' is an optional command/statement to be executed
if the 'Expression' is FALSE.
Examples:
If #G=5 then goto End else goto Loop
If #D>#A AND ((#A<=10) OR (#A=0)) then gosub Do else gosub Don't
If #X<10 then #X=#X+1 else Return
Boolean Variables
The 26 boolean variables, !A..!Z, can hold the value TRUE which
has a value of 1, or FALSE which has a value of 0. Any attempt
to assign any other value will result in an error message.
Assignments can be made using other booleans, TRUE or FALSE or
any logical expression.
Typical assignments would be:
!A = TRUE
!G = FALSE
!K = #A>#B
!R = #A<#B OR #H=5
!B=Await "Name:" 20
!B=Awake "^M" 20
!B=YesNo "Continue?: " TRUE
The last three forms are special cases discussed below.
Boolean variables can be used freely in arithmetic expressions as
if they were there ordinal values 1 and 0. They are mainly used
in the logical expression test field of an 'If' statement like
this:
If #6>4 AND !D=TRUE then goto LAB1 else goto LAB2
One of the most important uses of boolean variables is the
special assignment case where the result of an 'Await' statement
is assigned to a boolean. For example:
!B=Await "Name:" 20
Here if the string 'Name:' is received from the remote service
within 20 seconds the boolean variable '!B' takes the value TRUE
(1), otherwise it takes the value FALSE (0). Typically this
boolean can then be tested in an 'If' statement and script
control can branch to a label depending on the boolean's value.
For Example:
!B=Await "Name:" 20
If !B then goto SendName else goto TryAgain
( Note: 'If !B then' is equivalent to 'If !B=TRUE then' )
Another special form of boolean assignment is:
!B=Awake "String" 20
Where the string 'String' is sent to the remote system to prompt
a response. In the above example if the remote responds by
sending ANY character/s within the specified 20 seconds then TRUE
(1) is assigned to '!B', otherwise FALSE (0) is assigned to '!B'.
Yet another special form of boolean assignment is:
!B=YesNo "Prompt: " D
Where: '!B' represents any boolean variable.
'Prompt' is any question to be asked of the user which can
be answered with Yes or No.
'D' is an optional default position for the highlighted
bar. 'D' may be TRUE in which case the bar will be on
Yes when the prompt box 'pops-up' or FALSE in which case
it will be on No. If 'D' is not specified the default is
TRUE.
For example the script line:
!B=YesNo "Continue?: " TRUE
would pop-up a response box like this:
+-------------------------+
| Continue?: Yes No |
+-------------------------+
The highlighted bar would be on the Yes option.
String Variables
The 26 string variables, $A..$Z, can hold anything up to a
maximum of 80 characters.
Typical assignments would be:
$A="String"
$A=$B
$A=Input "Prompt" L
$A=Slice($B,From,To)
$A=Select "Mask"
The first two are straight forward assignments - The third and
fourth and fifth are special forms of assignment discussed below.
The third form allows the user to interactively enter a string
during script execution
Where: '$A' represents any of the 26 string variables.
'Prompt' is an optional prompt which precedes the actual
input field (Max 40 characters)
'L' is an optional length parameter which sets an upper
limit to the length of the string which can be input by
the user.
Example:
The script line:
$D=Input " Enter your name: " 40
Would pop up an input box like this:
+------------------| Script Input |-----------------+
| Enter your name: |
+---------------------------------------------------+
which would accept an input up to 40 characters long and assign
it to the string variable $D.
Input should normally be terminated by pressing the [RETURN] key.
If the input is terminated with the [ESC] key the contents of the
string variable remain as they were prior to the Input command
being encountered.
'Edit' is in effect just like 'Input' except that the existing
contents of the string variable concerned can be edited rather
than simply input from scratch. For example:
$D= "c:\eazilink\capture\eazilink.cap"
$D=Edit " Capture file: " 64
Would pop up an edit box like this:
+------------------| Script Edit |------------------+
| Capture file: c:\eazilink\capture\eazilink.cap |
+---------------------------------------------------+
which would accept editing/input up to 64 characters long and
assign the resultant string to the string variable $D. When the
box first pops-up the original contents of '$D' occupy the
editing field with the cursor located at the end of the string.
IMPORTANT: There is no numeric input mechanism built-in, nor is
such a mechanism required. Any string variable with contents
which are the proper ASCII representation of a number may be used
AS IF it was a numeric variable of that value.
For example consider the script line:
$B=Input "Enter value: " 3
Suppose, in response to this command, the user entered the
digits '145' - Then the next line could quite correctly be:
#A=$B
Now the numeric variable #A holds the value 145. Likewise
expressions such as:
If $B>120 OR #A=6 then goto LAB1 else goto LAB2
#C=$B+#A
are quite legitimate provided that $B does contain a proper ASCII
numeric representation. In fact $B could be used anywhere where
a '#' numeric variable can be used.
Note: An empty string does NOT equate to the numeric value 0 and
such a string cannot be used in an expression.
Strings can be concatenated, appended etc. very easily by using
the script language's built-in variable substitution mechanism.
For example:
$A="Fred"
$A="%$A Bloggs"
Now $A contains the string 'Fred Bloggs' - Bloggs has been
appended to $A. Similarly after:
$B="I think %$A is here."
$B would contain 'I think Fred Bloggs is here.' Don't forget
that within quotes the '%' variable prefix is required for
substitution to take place.
NOTE: If the substitutions create a string of a length greater
than the maximum string variable length of 80 characters, only
the first 80 characters are assigned to the variable - No error
message is generated.
The fourth form of assignment enables any sub-section or 'slice'
of one string variable to be assigned to another (or even to
itself!).
$A=Slice($B,From,To)
Where: '$A'and '$B' represent any string variables.
'From' is the first character of the slice of $B and 'To'
is the last character of the slice of $B to be assigned
to $A.
Note: 'From' and 'To' must be in the range 1..80 and, of
course, 'To' must be >= 'From'.
Example:
$A="It's a funny old world!"
$B=Slice($A,8,12)
$B would now hold the string 'funny'.
Note that as in most other situations within scripts where a
numeric value is required any expression can be used instead.
For Example
$A="Welcome to you all!"
#C=1
:Loop
If #C>Length($A) then goto EndLoop { Exit on end of string }
$B=Slice($A,#C,#C) { Get next character }
Send $B
#C=#C+1 { Increment position }
Goto Loop { Repeat }
:EndLoop
The above piece of script sends string $A a character at a time.
Note that 'Slice' should be seen as a special kind of assignment
mechanism only - Unlike other general string functions it can NOT
be used within arithmetic expressions since it does not evaluate
to a numeric or boolean value.
If the second position parameter is greater than the length of
the string being sliced, the second parameter is adjusted to the
length of the string - No error message is generated. If the
first position parameter is greater than the second or out of
range values are used for the two parameters (<1 or >80) then an
error message is generated.
The fifth form offers a way of picking a file name from a 'pick'
window as used in several situations within EaziLink. The
general form is:
$A=Select "Mask"
Where: '$A' is any string variable.
'Mask' is an optional default path where the pick window
is to first display matching files. The 'Mask' may
contain drive, path and file name elements - The filename
itself may contain DOS file name wild cards. If no 'Mask'
parameter is specified then all files in the current
directory are shown when the window first appears.
Example:
$F=Select "c:\eazilink\capture\*.cap"
Would list all '.CAP' files in the 'c:\eazilink\capture'
directory.
When the [RETURN] key is pressed whilst on a valid file name, the
full file name, including drive and path elements, is assigned to
the string variable. If [ESC] is pressed, the string is made
empty. As usual in 'pick' windows within EaziLink, directories
can be changed to and other drives logged onto from the pick
window.
Literal Strings
Literal string parameters must be enclosed in double quotes (" ")
For example:
"Hello World"
If double quote characters are required WITHIN the literal string
itself they must be doubled up like this:
"Press ""Y"" to accept"
The above literal will be converted to
"Press "Y" to accept"
before being used by the script processor.
Remember that Main System Variables like %NDate, %Password are
expanded within literal strings as are the String, Numeric and
Boolean script variables provided they are prefixed with the '%'
character - for example:
If the current date is 8 Nov 1991 and '$M' contains the message
'Completed' then:
"Date: %NDate - %$M"
would be expanded to:
"Date: 08-11-91 - Completed"
FUNCTIONS
A number of functions are supported which may be included in
arithmetic expressions where they are substituted for the numeric
or boolean constant to which they evaluate. Examples:
#A=Length($D)
If Length($B)>1 then goto LAB2 else goto LAB2
!T=Equal($A,$C)
!T=Equal($A,"Test")
If PosL("You",$L)
Note: Both string literals (those enclosed in quotes) and string
variables may be used as parameters within functions.
Length
General form: Length($x)
Where: '$x' is any string variable/literal.
Returns: The length of the specified string.
PosL
General form: PosL($x,$y)
Where: '$x' and '$y' are any two string variables/literals.
Returns: The starting position of the LEFT-MOST occurrence of
'$x' in '$y' if '$y' contains '$x' as a sub-string - Otherwise
'0' is returned. The test is NOT case sensitive.
Note: String variables can be up to 80 characters long and
characters within them are numbered 1..80. (NOT 0..79 as is the
case in certain other languages).
If PosL returns '0' then '$y' does not contain '$x'.
Example:
$A="This is a simple test"
#P=PosL("simple",$A)
Now '#P' contains the value '11'
PosR
General form: PosR($x,$y)
Where: '$x' and '$y' are any two string variables/literals.
This works exactly like 'PosL' except that it returns the RIGHT-
MOST occurrence of '$x' in '$y'.
Equal
General form: Equal($x,$y)
Where: '$x' and '$y' are any two string variables/literals which
are compared for equality (case is NOT significant).
Returns: TRUE (1) if the strings are the same or FALSE (0)
otherwise.
Numeric
General form: Numeric($x)
Where: '$x' is any string variable or literal.
Returns: TRUE (1) if the string contains a proper ASCII
representation of a number in the range -32768..32767 or FALSE
(0) otherwise.
Exists
General form: Exists($x)
See the 'File Commands' section below for details.
Where: '$x' is any string variable/literal.
Returns: TRUE (1) if the file name held in '$x' exists or FALSE
(0) otherwise.
FILE COMMANDS
10 file handles numbered from 0..9 are available to the script
writer. Script files may be opened, written to and read from in
a variety of ways. If a file is successfully opened it MUST be
closed when finished with.
Open, Create, Append
General forms: Open(n) "FileName"
Create(n) "FileName"
Append(n) "FileName"
Where: 'n' is any of the file handles (0..9)
'FileName' is the full name of the file (string variable
or literal) to be opened which may optionally include
full drive/path elements.
Open - Opens a file for reading from only.
Create - Creates a new file ready for writing to from the
beginning. If the named file exists it is overwritten.
Append - Opens an existing file for writing to but adds
anything written to it to the end of the file's
current contents.
The 'Error off/on' mechanism can be used to check for the success
or otherwise of any of these operations.
Note: If the 'FileName' is 'PRN' then Write and WriteLn can be
used to send data to the printer on LPT1.
Close
General form: Close(n)
Where: 'n' is any of the file handles (0..9)
Close MUST be used on any file which was successfully opened,
after it has been finished with.
Write, WriteLn
General forms: Write(n) "Hello world!"
WriteLn(n) $A
Write(n) #B
WriteLn(n)
Where: 'n' is any of the file handles (0..9)
Notice that literal strings or variables may be written to an
open file.
Write - Simply writes the expanded parameter to the file.
WriteLn - Does just what Write does but then writes a CR/LF
sequence to the file as required for line separation
by a standard DOS text file. Note that in the case of
WriteLn only, the parameter may optionally be omitted
in which case just the CR/LF is written.
Where the parameter to be written to a file is a numeric or
boolean variable, it's ASCII representation is written.
Read, ReadLn
General forms: Vx=Read(n)
Vx=ReadLn(n)
Where: 'n' is any of the file handles (0..9)
'Vx' is any of the string, numeric or boolean variables.
This is really a special form of variable assignment which
enables the contents of a file to be assigned to a script
variable.
Read - This reads a SINGLE character from the file and
assigns it to 'Vx'. Any CR/LF characters will be read
in and assigned to 'Vx' just like any other characters
by this command.
ReadLn - This reads a full line of text from a file, up to the
CR/LF end of line characters. Apart from acting as
line-end markers for the ReadLn, the CR/LF sequences
are effectively skipped and are NOT included in the
assignment to 'Vx'.
Note: ReadLn will only read in and assign a string of text up to
80 characters long. Any characters beyond 80 are simply ignored
- no error is reported.
If the assignment is made to a numeric or boolean variable
(#x=ReadLn(0) or !x=ReadLn(0)) then the character/s read in must
be a valid ASCII representation of a number or boolean
respectively. For example if a text file has the following form:
Hello World
125
0
Then three consecutive reads could be made from the text file
like this:
$S=ReadLn(0) { $S now holds the string 'Hello World' }
#N=ReadLn(0) { #N now has the value 125 }
!B=ReadLn(0) { !B is now set to FALSE (0) }
If writing out variable values to disk with a view to reading
them back in at a later stage it is best to use WriteLn and
ReadLn rather than Write and Read because the CR/LF end of line
markers define the size, in bytes, of each variable to be read
in.
IMPORTANT: Any special control codes, like the carriage return
code (code 13), embedded in a string, are expanded to their full
'^?' form before being written to the file by both Write and
WriteLn. Thus the return code 13 would be replaced by the '^M'
control code sequence. This is required because code 13 has a
special meaning within text files and denotes an end of line
situation.
When reading in strings from disk with ReadLn, any '^?' type
control sequences are converted to raw control code form before
assignment to the string variable - In line with the way such
codes are stored within script string variables. Such codes read
in with Read are NOT converted making it possible for Read to
read in the end of line characters themselves which you may wish
to do in certain cases.
Eof
General form: !E=Eof(n)
If Eof(n) then etc...
Where: 'n' is any of the file handles (0..9)
This function is used to test whether the end of file 'n' has
been reached. 'Eof' can be used in an 'If' statement to test for
end of file and exit from a file reading/writing loop.
Returns: TRUE (1) if the end of file 'n' has been reached or
FALSE (0) otherwise.
Note: Open(n), Create(n) & Append(n) always set Eof(n) to FALSE.
Exists
General form: Exists($x)
Where: '$x' is any string variable/literal.
Returns: TRUE (1) if the file name held in '$x' exists or FALSE
(0) otherwise.
Example of file command usage:
:Start
$F=Input "File name: " 12
IfNot Exists($F) then goto start
:SendTextFile
Error off { Detects 'Open' error }
Open(0) $F { Open file using handle '0' }
Error on
IF Error then goto End { If failed to open - End }
:ReadLoop
Error off
$S=ReadLn(0); { Read a file line into '$S' }
Error on
If Error then goto End { If ReadLn failed - End }
Send "%$S^M^J" { Send the line + CR/LF }
If Eof(0) then goto End { Finish if Eof encountered }
Goto ReadLoop
:End
Close(0) { Files MUST always be closed}
Exit
The above piece of script prompts for a file name and then reads
the file line by line sending each line to the remote. Note that
you can call 'Close' on a file which in fact failed to open
without problems.
GENERAL NOTES AND TIPS
- Case is not significant.
- Spaces in expressions are not required but may be used for
clarity.
- Spaces after command words ARE required as are those which
separate the structuring tokens such as ' then ', ' gosub '
etc. within 'If' statements.
- One command to a line only.
- Labels MUST be on a line to themselves. Never use the same
label name twice in the same script.
- The 'T' time parameter used with 'Awake' and 'Await' may be a
numeric constant or any valid arithmetic expression. In most
cases where a numeric constant is required, a valid arithmetic
expression may be used in it's place.
- EaziLink's file name 'guessing' feature, used for downloading,
searches the history buffer to find the file name you entered
in response to the remote host's request for the name of the
file you wish to download. If you use a script line such as:
Await "Waiting to send"
to pick up say 'Waiting to send TEST.ZIP ...', you must use the
AutoClear command around the Await line to ensure that the file
name is not cleared from the history by the success of the
Await like this:
AutoClear off
Await "Waiting to send"
AutoClear on
- Variable types can generally be cross-assigned directly to
each other where such assignment appears to make sense for
example:
$A="125"
#A=568
$B=#A { $B now contains the string '568' }
#B=$A { #B now contains the value 125 }
- Where a quoted literal parameter is used (i.e. one enclosed
in " "), BOTH main system variables AND the special script
variables, both types prefixed with the '%' symbol, are
expanded to their full ASCII representation.
Control characters prefixed with the '^' symbol are also sub-
stituted for the character code they represent. Thus if you
assign:
$A="Hello^M"
$A will actually contain Hello followed by the return character
(code 13) which the '^M' represents - $A is thus 5 characters
long not 6!
This means that mechanisms such as this may be used:
If Equal($A,"^M") then goto GotReturn
Here the 'If' statement tests to see if '$A' is equal to the
RETURN character.
( Note: See how the file Read & Write routines handle this in a
special way )
A single variable can generally be used instead of a quoted
string parameter, if preferred, in most situations.
- Put major sub-routines, that is those which end with a
'Return' and are called with a 'Gosub', at the end of your
script and use 'Exit' before them in your script. This will
reduce the chances of such routines being run-into by normal
sequential script flow which would cause a 'Gosub underflow!'
error to be generated. For example:
:Start
-
-
/ Main script lines here
-
-
Exit
/ Normal script flow should never reach this point
/ The sub-routines below should only be accessed by Gosub calls
:Sub1
-
-
Return
Sub2
-
-
Return
This is not a rule as such and sub-routines can be put anywhere
but do take care to only allow them to be accessed by Gosub
calls. This is all just like BASIC so those familiar with that
language will have no trouble understanding this.
- Logging off or hanging up the line MUST be the last thing a
script does. Do not log off or hang up and then expect the
script to do various other things afterwards. This is because
scripts are only able to operate whilst a connection is
present. As soon as the line is dropped, scripts cease to run
immediately. You may have time to do some minor operation
after requesting log off but don't try to do too much.
SYSTEM VARIABLES
Certain system variables, starting with a '%' character are
supported within EaziLink. If these variables are found in
Macros, Script Reply commands, file transfer definitions or
host mode menus and display files they are replaced as follows:
Originate Mode
%password Replaced by the password in the current dialling
directory entry.
%port Replaced by the current comms port number.
%speed Replaced by the current baud rate.
%linespeed Replaced by the actual line speed.
%parity Replaced by the current parity, represented by a
single upper case character 'N' (none), 'O' (odd),
'E' (even), 'M' (mark), 'S' (space).
%file Replaced by the file name specified by the user
for upload or download. (used in file transfer
definitions and optional external utilities etc.)
%path Replaced by the current path. This can be useful
in file transfer definitions within EAZILINK.PRO.
EaziLink always logs onto the file path where it
wants incoming files to be stored, in both
Originate and Host modes, immediately prior to
starting the file transfer. %path can be used to
prevent file path specifications, transmitted by
DSZ Ymodem and Zmodem, from influencing the
incoming file's location on your disk.
%time Replaced by the time in hh:mm format.
%ndate Replaced by the date in dd-mm-yy format.
%rdate Replaced by the date in yy-mm-dd format.
Host Mode
%port, %parity and %path as above.
%ansi A single upper case letter indicating whether ANSI
displays are in operation - 'Y' yes or 'N' no.
%hotkey A single upper case letter indicating whether the
Hot-key option is in operation - 'Y' yes, or 'N'
no.
%expert A single upper case letter indicating whether the
short expert menus are in operation - 'Y' yes, or
'N' no.
%first Current caller's first name.
%last Current caller's last name.
%password Current caller's password.
%speed Baud rate. (or 'LOCAL' if log-in is local & not
used in file transfer.)
%linespeed As above but showing actual line speed.
%arc The name of an archive file (used in VIEWS.HST).
%file The name of a text file within an archive (used in
VIEWS.HST).
%messagecount Number of messages in the message base.
%areanumber Number of the current file download area.
%areatitle Title of the current file download area.
Note: DSZ does not accept a root path in the form 'A:\', as
passed by the %path variable, and DOS's CD command, as valid. It
will only accept a path without a trailing '\'. You must use
upload and download paths which are not root paths if you intend
to use %path in a DSZ protocol definition, within EAZILINK.PRO.
For example If you wish to direct downloads to floppy drive 'A' -
make the path 'A:\DOWNLOADS' and %path will direct downloads
correctly.
Note: %linespeed will only differ from %speed where a fixed
DTE is in use and the modem has been set to return a CONNECT
string which reflects line speed rather than DTE speed. ALWAYS
use %speed as the main speed parameter when running protocols.
H O S T M O D E
OVERVIEW
The host mode provided by EaziLink provides powerful BBS
facilities. Callers can log-on by entering their name and
password. Users can elect to use simple TELETYPE or full colour
ANSI-BBS terminal emulation. Users calling the host mode must do
so with their communications package set for 8 DATA BITS, NO
PARITY, 1 STOP BIT (8-N-1) and Xon/Xoff handshaking. Baud rate
is flexible and may be any rate which the host modem can scan for
and detect. EaziLink's host mode expects extended reply strings
like 'CONNECT 1200' to be returned by the modem when a connection
is made. The EaziLink host mode also requires the carrier detect
pin to be raised when a carrier signal is detected and a
connection made.
If the carrier signal is lost during communication, provided that
the remote user is not currently in the host machines DOS shell
or a type 2 door, EaziLink will automatically recycle and wait
for the next call. EaziLink has it's own carrier watch built-in.
If the remote caller is in a door without it's own carrier
monitoring, or has used the Sysop password to enter the DOS shell
and the carrier is lost, EaziLink will recover by carrying out a
soft re-boot. To force EaziLink to go back on-line in host mode
after a carrier loss re-boot either use 'EAZILINK /H' in your
AUTOEXEC.BAT file on your hard disk or put a specially prepared
system disk in drive A: with the required AUTOEXEC.BAT and
CONFIG.SYS files etc. on it. No external carrier watch program
is needed if you set up the system as directed. EaziLink should
be able to recover in all carrier loss situations.
If your modem is not reasonably Hayes compatible, you may not be
able to use host mode.
The host mode incorporates a sophisticated message base, doors,
news bulletins, archive viewing, file upload/download facilities
and an on-line chat feature. Messages can be posted to any other
user on the system or to all users, They may be marked private if
desired, in which case only the named recipient and the original
sender may read them. When a user logs on, he is informed of the
presence of any new messages addressed to him, which he has not
yet read. Where such messages exist the user is given the option
of reading them immediately.
We strongly recommend that you set up separate 'Host Main Path',
'Host Download Path' and 'Host Upload Path' directories in the
Host Mode configuration section to keep all uploads & downloads
away from your other file areas and messages and host mode system
files together. Although you may make the download and upload
paths the same, it is easier to spot new uploads if they are kept
separate. Please note that the 'Host Download Path' is made
redundant if you elect to set up multiple file areas. Please
note that protocols like Zmodem and Ymodem which allow paths to
be specified during uploading can be dangerous. For example if a
user uploaded a file called 'C:\CONFIG.SYS' it could over-write
your config file even though you have set up a separate 'Host
Upload Path'. DSZ allows switches and environment strings to be
set to prevent this. A new system variable '%path' has been
introduced to help in some such cases. The '%path' variable is
replaced by the current path. In both Originate & Host modes the
receiving path is made current immediately prior to file
transfer. The '%path' variable can thus be used to good effect
with DSZ to override incoming path specifications (see DSZ
documentation).
If any of the file transfer protocols which have been defined in
EAZILINK.PRO are NOT to be offered to callers in host mode, then
make sure they have been entered in EAZILINK.PRO using the
optional semi-colon (;) modifier.
(See the FILE TRANSFER PROTOCOLS section earlier in the manual)
EaziLink uses the computers time and date system in both
Originate mode, for the usage log, and in Host mode to date stamp
messages and keep track of a callers last time on. Always make
sure the time and date are set correctly before using EaziLink.
Note: If you use a utility which increases the size of the
keyboard buffer, or in any way relocates the keyboard buffer, you
may find that the host mode (S)hell command causes the computer
to hang when invoked by the remote user. This will not be
obvious in (L)ocal test mode because a different mechanism is
used to invoke the shell. Avoid such keyboard enhancing programs
when using EaziLink in host mode. It has been reported that
Doors type 2 and the remote shell option do not work under
Desqview which does not appear to support CTTY?.
IMPORTANT: The remote use of the host shell and doors type 2 rely
on the DOS feature CTTY for their operation. These mechanisms
will therefore only work with communication ports supported by
DOS itself - i.e. generally ports 1 and 2. If you configure
EaziLink to work on port 3 or 4 it will function fully in
originate mode and will also function in host mode with the
exception of the two features mentioned above.
PROGRAM FILES
The following files are either supplied or generated by the
facilities within EaziLink's Host mode:
HOST.LOG Host caller log file (Generated by program)
USER.HST The user list file. (Generated by program)
LOGO.HST Host opening logo. (Generated by user)
NOTICE.HST Special notice screen. (Generated by user)
LOGOFF.HST Special log-off screen. (Generated by user)
NEWUSER.HST Special New User text. (Generated by user)
WELCOME.TXT Teletype welcome screen. (Generated by user)
WELCOME.ANS ANSI welcome screen. (Generated by user)
FILELOGO.TXT Teletype file area logo. (Generated by user)
FILELOGO.ANS ANSI file area logo. (Generated by user)
MESSLOGO.TXT Teletype message area logo. (Generated by user)
MESSLOGO.ANS ANSI message area logo. (Generated by user)
XXXXXXXX.XXX File descriptions. (Generated by user)
MESSAGE.IDX Message base index file. (Generated by program)
n.MSG Message texts (n = number) (Generated by program)
*.MNU Host mode menu files. (Supplied)
*.HLP Host mode help files. (Supplied)
RECYCLE.BAT File to be run on recycle. (Generated by user)
BATCH.BAT Compresses the mailbag. (Generated by user)
COLOUR.HST Colour translation table. (Generated by user)
MAILBAG.MSG Message mailbag. (Generated by program)
Please note that all files marked (Generated by user) are
optional and need not exist for the host mode to function. Where
the user chooses to create these files they must be in the 'Host
Main Path' directory. The 'MESSAGE.IDX' file is automatically
created in the 'Host Main Path' directory and is maintained
directly by EaziLink. The 'n.MSG' files are created and
maintained by EaziLink in the 'Host Message Path' directory. The
HOST.LOG file, if activated, is created and updated in the
EaziLink main directory (NOT the 'Host Main Path'). If
RECYCLE.BAT exists in the 'Host Main Path' it is run each time
the host mode recycles ready for the next call. The '.MNU' and
'.HLP' files supplied with EaziLink must be located in the 'Host
Main Path' - they are the menus and help screens displayed to
callers.
SPECIAL CODES
In some cases two separate files with the same name but different
extensions, '.ANS' and '.TXT', need to be created if you want
both ANSI and TELETYPE users to receive an appropriate screen
display. Where this is so, it is mentioned in the 'SETTING UP
HOST MODE' section. The special codes described below may be
used in the '.TXT' variant of such files but must NOT be used in
true '.ANS' files.
With the exception of 'LOGO.HST' the text files with the
extensions '.TXT' or '.HST' may contain system variables,
described in the 'SYSTEM VARIABLES' section, and special codes,
prefixed with the '^' symbol, to add colour and other special
effects. Since these codes play a major part in the appearance
of the host mode they will be described in detail before we
discuss the setting up of the host mode proper. Such variables
and codes must NOT be used in LOGO.HST because it is shown before
the caller actually logs-on and no caller details are known at
that point.
Special codes are prefixed by the '^' symbol. Here are the non-
colour related codes:
^^ DISPLAY THE ^ CHARACTER ITSELF
^G RING BELL
^M RETURN
^J LINE-FEED
^L CLEAR-SCREEN
^H BACKSPACE-DELETE
^Z A special code used only in menus - described in the
'SETTING UP HOST MODE' section later.
^A All following text in the same line is sent only to ANSI
users - another ^A will cancel.
^T All following text in the same line is sent only to TTY
users - another ^T will cancel.
^Dnn This command introduces a delay between characters of
'nn' 1/100ths of a second for all following characters in
the same line of text. A ^D0, or the line end, cancels
the delay. The range for 'nn' is 0..99.
In the case of '^A', '^T' and '^Dnn', the switch only affects the
current line of text - it is automatically cancelled at the end
of the line.
Examples:
"Hello %first,
I see you have ^T not^T chosen to receive ANSI colour screens
etc..."
Only TTY users would see the 'not' in the above text.
"Hello %first,
^D10The EaziLink^D15^H^H^H^H^H^H^H^H^D10EAZILINK BBS..."
The above text would be slowly displayed as if being typed live.
After 'EaziLink' is displayed the speed drops even more as the
word is deleted and replaced with 'EAZILINK' in capital letters.
The special codes used to generate colours are of the form
'^Cnn'. These codes are ignored by the TELETYPE driver thus they
can be used freely in any text which is to be shown to ANSI and
TELETYPE users alike. The sequence '^Cnn' turns the ANSI colour
or effect 'nn' on. The 'nn' is a one or two digit standard ANSI
number required for the chosen colour or effect as listed below:
ANSI values
0 Normal default 1 High intensity
5 Blink on 7 Reverse video
8 Concealed 30 Black foreground
31 Red foreground 32 Green foreground
33 Yellow foreground 34 Blue foreground
35 Magenta foreground 36 Cyan foreground
37 White foreground 40 Black background
41 Red background 42 Green background
43 Yellow background 44 Blue background
45 Magenta background 46 Cyan background
47 White background
For example, a 'XXXXXXXX.XXX' file description line:
^C1^C33EAZILINK.ZIP^C35 A new British comms package.^C0
would display the file name in high intensity yellow and the
description in high intensity cyan. The ^C0 at the end sets
colour back to default - don't leave it out!
The above line would appear coloured to ANSI users and normal
monochrome to TELETYPE users.
Note: If a special code sequence requires only a single digit
value and the next proper text character is a digit - e.g.
'^C180386 chip details.', pre-fix the special code value with a
'0' to make it two digits long - thus making it '^C0180386 chip
details.' instead. This will prevent the system from associating
the text digit, 8 in the above example, with the special code.
SETTING UP HOST MODE
The host mode can be set up to be as simple or as complex as the
Sysop wishes - many of the features are optional. In it's
simplest form, host mode offers just one download file area -
i.e. the directory specified in the configuration's host mode
section. News bulletins, doors, file viewing facilities, mailbag
archiving, recycle operations need not be defined.
If a full featured host mode is required the following facilities
may be made available to callers:
News Bulletins
Up to 16 news items may be defined in a file called NEWS.HST.
This file must be in the 'Host Main Path' directory as must each
news text file. Each news item entry in NEWS.HST must consist of
a single line of the following form:
FILENAME.EXT; TITLE; l
Where FILENAME can be any name and EXT any extension. If EXT is
not included then .NWS is assumed. Note: Path names must NOT be
included. The TITLE is the news item's title to appear on-screen.
TITLE can be up to 60 characters long and may contain '^' special
codes as may the news bulletin itself. The 'l' represents a
single character - either 'Y' or 'N'. This should be set to 'Y'
if special '^' codes or '%...' system variables have been used in
the text of the news item - otherwise enter 'N' to indicate a
standard ascii file. The 'N' switch option has been provided to
enable the Sysop to get an ascii file from any source and offer
it as a news bulletin without having to check that no '^'
characters exist in the file, which would otherwise be
interpreted by EaziLink as special control codes.
Example NEWS.HST file:
HISTORY.NWS; ^C32Full EaziLink release history.^C0;Y
LATEST.NWS; ^C32Latest EaziLink v4.0.^C0;Y
The titles would be displayed in green (^C32). The news files
HISTORY.NWS and LATEST.NWS must be in the 'Host Main Path'
directory. These text files may also contain '^ ' special codes
and system variables (use the 'Y' switch), or may be plain ascii
files (use the 'N' switch). The two ';' field separators must be
present - one or more spaces may be located before or after them
if desired.
Note: NEWS.HST may be edited from within host mode itself but you
MUST drop back into EaziLink's main menu and enter host mode
again before any changes will take effect.
Multiple Download Areas
Up to 16 separate download file areas can be defined in a file
called FILES.HST. This file must be located in the 'Host Main
Path' directory. If it does not exist then the 'Host Down Path'
in the configuration section will be the download path made
available, just as in earlier EaziLink releases. The FILES.HST
file is a normal ASCII file in which each line represents a
separate download directory - the form of each entry is as
follows:
FULL_PATH_NAME; n; TITLE; LOGO; l
Where 'FULL_PATH_NAME' is the directory where the group of files
is to be found, 'n' is the access level required to download from
the directory and 'TITLE' is a file area description of up to 60
characters, to be displayed to callers - the '^' control codes
may be used in 'TITLE'. 'LOGO' is the optional name of a logo
file to be displayed on entry to that particular file area. The
'LOGO' field may be left empty if no logo is required BUT the
third field separator MUST be present. Please note that the
'LOGO' field must be a simple file name only (up to 8 characters
Max.) without an extension. EaziLink adds the extension .ANS or
and TELETYPE users. The logo files must be located in the 'Host
Main Path' directory. The 'l' field is a single letter - either
'Y' or 'N'. This indicates whether the logo is to be displayed
every time a caller enters that particular download area. If set
to 'N' the logo will only be displayed the first time a caller
enters that file area in any one on-line connection. As in the
case of the 'LOGO' field, the 'l' field may be left empty but
the fourth ';' must be present. If 'l' is empty but 'LOGO' is
not, then a default 'l' of 'N' is assumed.
Example FILES.HST file:
C:\EAZILINK\SHARE; 0; General Shareware.; GENLOGO; Y
C:\EAZILINK\REG; 5; Registered user area.; REGLOGO; Y
C:\EAZILINK\PRIVATE; 9; Private test area - no access.;;
In this example any user can have download access to the first
area. Only users with an access level of 5 or over may download
from the second area. Only users with the highest access level
of 9 can download from the third area. The four ';' field
separators must be present - one or more spaces may be located
before or after them if desired.
In addition, a level of 9 applied to a file area makes it private
in that users with access levels lower than 9 cannot (L)ist,
(W)ide, (T)ype, (U)pload, or (D)ownload. This only applies to
level 9 and has been introduced to make it possible for the
contents of certain areas to be hidden from all but selected
users.
Note: All new users are automatically give an access level of 0.
The Sysop could encourage users, via NEWUSER.HST, to leave a
message requesting upgrade.
If full descriptions of download files are to be provided for
callers, each file area directory should have within it a text
file called 'XXXXXXXX.XXX' which contains one line per file name
and description. This file is a standard ascii file, created by
the Sysop, and may contain the special '^' control codes. The
XXXXXXXX.XXX file is ignored by the (W)ide option (as is
XXXXXXX.BAK) and will not be seen by users even though it is
amongst the download files. When (L)ist is used the contents of
the XXXXXXXX.XXX file in the current download file area is
displayed to the caller.
Callers can move between file areas via the (A)rea option on the
file menu. If no file areas are defined then the single default
file area logo, if it has been created, is FILELOGO.ANS/TXT.
When separate file areas are defined each may be assigned it's
own logo named in each entry's 'LOGO' field in FILES.HST as
detailed above. All such logos must be located in the 'Host Main
Path' directory.
Note: FILES.HST may be edited from within host mode itself but
you MUST drop back into EaziLink's main menu and enter host mode
again before any changes will take effect.
Doors
It is possible to run external programs (doors) from EaziLink's
host mode. One of EaziLink's two types of Door mechanism is
compatible with PCBOARD BBS (tm) which means that a large number
of games and other Door programs written for that system can now
be run from EaziLink's host mode. The two different types of
Door program which can be run from EaziLink are:
Type 1 - PCBOARD compatible door programs which have their own
comms I/O built-in. Immediately before this type of door program
is run, a file PCBOARD.SYS is created in the door program's
directory. This file contains information required by the
external program. In addition the PCBOARD file, PCBOARD.DAT must
be copied into the directory where the Door program is located.
This file also contains information required by the external
program and can be obtained from a PCBOARD archive file. The
PCBOARD.SYS file is always deleted on return to the main board.
Type 2 - Batch files and/or programs which use DOS I/O ONLY - the
I/O of which can be re-directed to the comms port by the CTTY
command. All batch file commands can be used with this door type
as can any program which receives it's input and directs it's
output through the basic DOS functions. Programs which use
direct hardware access or BIOS calls for their I/O will NOT work
with this door type. The CTTY command is automatically handled
and need not be included in door program or batch files.
Note: Type 2 Doors should only be provided if you are using
communications port 1 or 2.
Up to 16 Doors can be defined in a special file DOORS.HST which
must be located in the 'Host Main Path' directory. This is a
standard ascii file containing one definition per line with the
following structure:
n; l; t; Title; FullPathName
The 'n' is a single digit, 0..9, representing the access level
required to run the Door. The 'l' is a letter 'Y' (Yes) or 'N'
(No) which indicates whether EaziLink's built-in soft re-boot
recovery should be employed if the line drops whilst a door is in
use. The 't' indicates which Door type the program requires (1
or 2). 'Title' is the name of the Door program to be displayed
to the caller (60 chars Max.). 'FullPathName' is the full file
name, including drive, path and parameters, of the Door program
(64 chars Max.) - this may be a short file name or DOS command if
the door is of type 2.
Example DOORS.HST file:
5; N; 1; BlackJack; C:\EAZILINK\GAMES\PCB21V17.EXE PCB21V17.CFG
Here users with an access level of 5 or over can play BlackJack.
The 'N' indicates that the Door program monitors the carrier
itself so the EaziLink soft re-boot recovery will not be needed
if the line drops. In type 1 door definitions the file name must
include the .COM, .EXE or .BAT extension because each file type
is handled differently. Type 2 doors are always executed by the
command processor so a file name extension is not needed - indeed
DOS internal commands can be executed via this type of door if
desired. Type 2 doors are ideal for executing batch files which
can be written to carry out simple or very complex tasks - the
possibilities are almost unlimited.
The four ';' field separators must be present - they may have one
or more spaces on either side if desired.
Please note that immediately before a door is run, EaziLink
changes to the directory path contained in 'FullPathName' - if
any. Thus when the program runs it can find all it's support
files in it's own, current, directory. This is also where
PCBOARD.SYS is automatically created and also where the Sysop
should put the PCBOARD.DAT file if the door is of type 1. The
PCBOARD.SYS file is NOT created for door type 2. The system
variables can be used in a door program parameter list to pass
information from the main board to a door program or batch file.
(see: SYSTEM VARIABLES)
Archive Viewing
The Host mode file section has an archive View feature. Files in
any archive may be listed and any text file within an archive can
be read, on-line, by a caller. The file menu option (V)iew
invokes external de-archiving utilities, which the Sysop must
provide. Archive types may be ARC, ZIP, PAK or any other which
becomes available. To make Viewing facilities available, a
special ascii file named 'VIEWS.HST' must be created in the 'Host
Main Path' directory. Within this file up to 5 different de-
archiving tools may be defined - one per line. The file's format
is as follows:
ext; list; extract
The field 'ext' is the 3 letter archive type's extension. The
'list' field contains the de-archiving utility's name and
parameters required to generate a list of files within the
archive. The 'extract' field contains the de-archiving utility's
name and parameters required to extract a single named file from
an archive. The archive file's name is included in the parameter
list by use of the %arc system variable and the text file to be
extracted (for reading) from an archive is passed in the system
variable %file. The 'list' and 'extract' field entries may
contain the full path names of the de-archiving tools or just the
short file name if the tools are located in a directory pointed
to by the DOS PATH command.
Example VIEWS.HST file:
ZIP; PKUNZIP/V %arc; PKUNZIP %arc %file
ARC; PKXARC/V %arc; PKXARC %arc %file
PAK; PAK v %arc; PAK e %arc %file
The two ';' field separators must be present - one or more spaces
may be located before or after them if desired. Callers
selecting the View option are prompted to enter the name of the
archive, the contents of which they wish to view. A simple short
file name without drive, path or wild card components must be
entered. If no extension is included then EaziLink will
automatically find the first matching file which has any one of
the extensions defined in the 'Ext' fields of VIEWS.HST. If for
example the caller types 'EAZILINK' and the file 'EAZILINK.ARC'
exists then the VIEWS.HST utility installed to deal with ARC
files will automatically be used to process the file.
Batch Message Compression
Callers may optionally fill a Mailbag with messages, news items
etc. and download it using the message area Batch command. The
caller's selected items are added to a file called 'MAILBAG.MSG'
which EaziLink creates in the 'Host Main Path' directory. If the
optional file 'BATCH.BAT' has been created by the Sysop in the
'Host Main Path' directory, the caller is given the option of
compressing the mailbag - otherwise the mailbag is downloaded in
ordinary ascii form. The BATCH.BAT file only needs to contain
two command lines - one to archive the 'MAILBAG.MSG' file, and
the second to delete the original 'MAILBAG.MSG' file. It is
important to delete the original file after archiving because
EaziLink will download the first file in the 'Host Main Path'
matching 'MAILBAG.*' regardless of extension - thus any archiving
tool may be used. This is a typical 'BATCH.BAT' file:
pkzip mailbag.zip mailbag.msg
del mailbag.msg
Note: the above example assumes that PKZIP is in a directory
pointed to by your PATH command - the 'Host Main Path' is the
current directory when 'BATCH.BAT' is run so no path
specifications are required in the batch file.
Recycle Housekeeping
If the optional file 'RECYCLE.BAT' is created by the Sysop in the
'Host Main Path', it is automatically run after each caller has
logged off, before the host mode resets itself ready for the next
caller. This could be used to copy/update files, run a utility
or carry out any between call housekeeping which the Sysop
desires.
Menu Customisation
The text for most menus is held in external files. The default
menu files are supplied. If these files are not placed in the
'Host Main Path' directory, a short 'Expert' menu, which is
built-in, is displayed instead. In the same way, all help
screens are external files which must be placed in the 'Host Main
Path' directory. If any help file does not exist, a 'No help is
available!' message is displayed to the caller. Default .HLP
files are supplied. Menu files have the extension '.MNU' and
help file '.HLP'.
Since these files are standard text files, the Sysop can edit
them to change the colour and general layout of the menus but
remember that the options available remain the same - the newly
designed menu should make all available options clear to callers.
The files may include any '^' special codes and any system
variables. The appropriate .HLP file is display when the '?'
option is selected. A .HLP file exists for each of the MNU files
except VERTICAL.MNU and have the same file name as the .MNU files
but with the extension .HLP e.g. MAIN.HLP, DOOR.HLP etc.
The .MNU files are as follows:
MAIN.MNU The MAIN MENU.
SYSMAIN.MNU The MAIN MENU (Sysop extended version)
FILE.MNU The FILES menu.
MESSAGE.MNU The MESSAGES menu.
OPTION.MNU The OPTIONS menu.
NEWS.MNU The news menu which starts - 'NEWS: ...'
DOOR.MNU The door menu which starts - 'DOOR: ...'
VIEW.MNU The view menu which starts - 'VIEW: ...'
BATCH.MNU The batch menu which starts - 'BATCH: ...'
EDITOR.MNU The editor menu which starts - 'EDITOR: ...'
EDIT.MNU The edit menu which starts - 'EDIT: ...'
READ.MNU The message menu which starts - 'READ: ...'
MAIL.MNU The message menu which starts - 'MAIL: ...'
FIND.MNU The message menu which starts - 'FIND: ...'
A number of additional items have been added specifically for use
within the .MNU files:
1) A '^Z' string embedded in any of the xxxx.MNU files, causes
the display of that file file to terminate abruptly. This
can be used to ensure that the menu display stops after the
user-input prompt thus ensuring that the character entered
by the user is echoed in the correct position.
2) The system variable %messagecount has been added to enable
the current number of messages to be included in MESSAGE.MNU
- for example:
^C0^C32MESSAGES - ^C36There are %messagecount messages.^C0
3) The system variable %areatitle enables the current file area
title to be included in FILE.MNU. The system variable
%areanumber enables the current file area number to be
included - for example:
^C0^C32FILES - AREA %areanumber: ^C36%areatitle^C0
Example MAIN MENU definition file:
^C33-MAIN MENU-^C0^C32 - %first %last - %linespeed baud.
^C36^C1(^C33N^C36)ews, (^C33F^C36)iles, etc...
^C0^C32Your choice %first: ^Z
This would appear to a caller called John Smith as:
-MAIN MENU- - John Smith - 2400 baud.
(N)ews, (F)iles, etc...
Your choice John: _
Please note the use of '^Z' to stop the display dead at the point
where the user's input character needs to be echoed - without it
a RETURN and LINE-FEED would be sent and the users input would
be echoed on the line below the new menu. Menus can be
completely re-designed or re-coloured with this system but it is
best not to create very deep menus or you may find that in
certain cases text scrolls of the screen before it can be
properly studied. Please note you do not need to use '^C0'
before '^Z' to cancel colours, nor are leading '^C0', '^M^J'
sequences or blank lines required because they are hard-wired
into the program code. This ensures that, following arbitrary
text file output to the screen, any colours set by ANSI or '^C'
special codes in the text file are cancelled and the menu is
always preceded by a blank line when re-displayed.
A special file 'VERTICAL.MNU' contains information about how the
numbers ahead of vertical menus like Door titles, News bulletins,
File areas etc. and the letter which precedes file transfer
protocols, should be displayed. A default file is supplied.
The file consists of just one line of text which is, in effect,
a mask where the number or letter is represented by a single
'*'.
For example if VERTICAL.MNU contains:
^C36[^C33*^C36]
vertical menu numbers would appear thus:
[1] - Item 1
[2] - Item 2
etc.
Whereas:
^C36<-^C33*^C36->
would cause vertical menu numbering to appear thus:
<-1-> - Item 1
<-2-> - Item 2
etc.
Two or three leading indentation spaces and a a trailing ' - '
sequence are automatically added by the program. If
VERTICAL.MNU does not exist then the plain number or letter is
displayed in basic default colours. No leading or trailing '^C0'
is needed.
To make even the short 'Expert' menus re-designable, an optional
short Expert menu file may be created, for each menu, in the
'Host Main Path' directory. These files have the same name as
the .MNU files described above but with a letter 'X' prefixing
the name. For example the Expert menu definition file for the
NEWS menu is called 'XNEWS.MNU'. These 'X' menus should be kept
short or their purpose is defeated. The advantage of using 'X'
files is, of course, that they can be coloured and reshaped to
suit your taste or match the full menu files that you may have
designed.
The menu shown under the different possible circumstances will
be as follows:
Expert Menus On 1) The short 'X' menu on disk - if it exists!
2) The hard-wired menu within the program.
Expert Menus Off 1) The full menu on disk - if it exists!
2) The short 'X' menu on disk - if it exists!
3) The hard-wired menu within the program.
Note: The default disk based full menus and help screens are
supplied in a compressed file called TEXT.ZIP (or ARC) from
which they must be extracted.
Colour Customisation
The colours used in display files, menus, help screens etc. can
be controlled by using the '^' special codes within the text - as
described above and in the 'SPECIAL CODES' section.
The colours of the hard-wired headings messages and prompts etc.
within EaziLink's host mode can also be defined by the Sysop. A
special file called 'COLOUR.HST' may be created in the 'Host
Main Path' directory, containing the required colour sequences.
ONLY FOREGROUND colours should be used in this file - background
changes may create odd effects. The COLOUR.HST file consists of
up to 9 lines starting with a colour number like this:
n: codes
where 'n' is a digit in the range 1..9 and 'codes' is a string of
digits and semi-colons representing the ANSI colour codes
required to create the desired effect. For Example:
2: 1;36
would assign to colour number 2 the codes to produce bright cyan
text. The sections of text affected by each colour number are as
follows:
1: General comments, error messages and prompts.
2: The EDITOR and FIND two line user explanation texts.
3: Expert menu headings and section headings such as 'News
Bulletins', 'Doors', 'Files', 'File Descriptions' etc.
4: The <PRIVATE>, <Received> & <Not Received> texts in message
headers.
5: The fixed field names in message headers, field names in the
FIND mask and line numbers in the message editor.
6: Expert menu round brackets.
7: Expert menu key letters (inside the brackets).
8: Used in conjunction with 9 where two contrasting colours are
used in the same display:
1) The 'More?' part of 'More? Y/N'.
2) The 'Press' part of 'Press [RETURN]...'
3) The remote users chat text colour.
4) The file name in the (W)ide display.
5) The (V)alidateUser level text prompts.
6) The main body of the (U)ser list display.
7) The log-in 'Checking for mail' text.
9: Used in conjunction with 8 where two contrasting colours are
used in the same display:
1) The 'Y/N' part of 'More? Y/N'.
2) The '[RETURN]...' part of 'Press [RETURN]...'
3) The Sysop's chat text colour.
4) The file size in the (W)ide display.
5) The (V)alidateUser level values.
6) The validation level in the (U)ser list display.
7) The log-in 'Checking for mail' number of messages value.
Any of the colour numbers may be defined or left out as you
desire. If the 'codes' part of the line is over 8 characters
long it will be ignored (no error message is generated). If the
COLOUR.HST file does not exist, a set of default colours is
used which match the colour scheme in the default .MNU and .HLP
files supplied.
Note: It is best to avoid using blue or light blue foreground
colours as this may be displayed on some callers monochrome
monitors as underlined text and can look messy.
HOST MODE IN OPERATION
When Host mode is invoked a window is displayed along with a
status line at the foot of the screen. Host mode is now waiting
for a call. After 1 minute a VDU anti-burn feature is activated
and the fixed display is replaced by a slowly scrolling single
line message. Operation of Host mode is fairly straight forward.
The local Sysop can test it's operation by use of the 'L'ocal
test feature. The 'N'ull modem option puts host mode on-line
when EaziLink is being used to connect two computers together via
a null modem cable. (See the DIRECT CONNECTION section) All
protocols defined for use with EaziLink are offered in host mode.
When on-line the bottom line of the host mode screen displays
details about the current caller. Hold down Alt to see a list of
Sysop options which can be selected from the host end - shell to
DOS, invoke the editor, hang-up, validate a user, turn chat
on/off etc. If the user pages you for a chat press [SPACE] to
chat or ignore it. To end a chat session press [ESC]. The Sysop
can make entries or select menu options for a caller at any time
just as if he was in local test mode. Chat mode can be
enabled/disabled by the Sysop at any time whilst waiting for a
call (press 'C') or whilst a caller is on-line (press 'Alt C').
The Sysop can give a caller a new validation level whilst on-
line, via the Alt V command.
When a user logs on
If a text file called LOGO.HST is found in the EaziLink main
directory it is displayed to greet users who log onto host mode.
If no file is found a default logo is shown. Since this Logo is
shown before log-on it must be an ASCII text file since it is not
known whether the user uses ANSI at this stage.
When a new user logs on for the first time, if the host
configuration option 'Open System' is set to NO then access will
be denied to them. If the system is open they are invited to
enter a password which they wish to use and also to indicate
whether they want ANSI displays or not. Their name, password,
and ANSI status is automatically entered in the USER.HST file
along with an access validation level of 0. Please note that all
access to the USER.HST file must be via the host mode options DO
NOT attempt to edit USER.HST with a text editor. USER.HST is
created and updated automatically in the 'Host Main Path'
directory.
If the caller is a new user and the file NEWUSER.HST has been
created in the 'Host Main Path' directory, then the text is
displayed to the caller. If the file does not exist, no text is
displayed.
If a text file NOTICE.HST has been created by the Sysop in the
'Host Main Path' directory it is displayed to the caller. This
file should be used for special notices to all callers.
If a text file WELCOME.TXT or WELCOME.ANS is found on the 'Host
Main Path' one or the other is displayed depending on whether the
user has elected ANSI displays or not. If ANSI mode is set and
WELCOME.ANS does not exist but WELCOME.TXT does then the .TXT
file will be shown. If neither file exists then no welcome
message is displayed. ANSI displays can be created either
manually or via programs like THE DRAW. If required, such files
must be created by the Sysop and put into the 'Host Main Path'.
The Main Menu
(N)ews.......Access the News bulletins.
(F)iles......Access the Files section.
(M)essages...Access the Message section.
(D)oor.......Access the Doors.
(O)ptions....Access the user Options sections.
(C)hat.......Page the Sysop for a chat.
(U)sers......Lists the users in USER.HST.
(?)..........Help.
(G)oodbye....Log-off. Users are offered the option of leaving a
message to the Sysop before leaving.
Sysop Extras
A user who used the special Sysop password on entering the system
has the following extra facilities. The (U)ser option also lists
the user's password, validation level and ANSI status. The
(S)hell option allows access to the DOS shell. The (K)illUser
option allows the removal of a named user from USER.HST. The
(V)alidateUser option allows the Sysop to change the validation
level of any user.
The News Menu
(R)ead......Read a selected news bulletin.
(L)ist......List the news bulletin titles.
(!).........Add a selected bulletin to the mailbag.
(?).........Help.
(Q)uit......Quit to the main menu.
The File Menu
(A)rea......Change file area - only if multiple area are defined.
(L)ist......If the optional file XXXXXXXX.XXX exists in the
current download directory then lines from it are
listed according to the Search string entered by the
user. The search string is not case sensitive and
any line from the file which contains the string will
be included in the on-screen listing. This mechanism
is designed to enable the operator to include file
descriptions in the system and allow users to
selectively list them. (See the 'Special Host Mode
Files' section later for full details)
(W)ide......A wide (4 across) listing of the available files is
displayed, along with each file's size. The File
mask is used as under DOS to specify particular
files if required.
(V)iew......View the contents of an archive/read a text file
within an archive. Provided that the Sysop has set
up VIEWS.HST to cope with all archive types on the
board, only the file name without extension needs to
be entered when specifying the archive file to be
viewed - EaziLink will select the correct de-
archiving tool required to view the file. Once the
archives contents have been listed the following
options are offered:
(L)ist.....List the files again.
(R)ead.....Read a text file within the archive.
(!)........Add a selected text file to the mailbag.
(?)........Help.
(Q)uit.....Quit to the file menu.
(T)ype......This is used to type the contents of a standard ASCII
text file on screen.
(U)p........Starts a file upload. The protocol is prompted for
followed by the file name. If a non-existent 'Host
Upload Path' has been defined in the configuration
section the user is politely informed that upload
facilities are not available. This is a simple way
of disabling the upload option. The caller is asked
if the upload is private. If he replies 'Y' then the
file is uploaded into a special directory called
'PRIVATE' within the 'Host Upload Path' directory -
EaziLink will create the 'PRIVATE' directory if it
does not exist. The caller is requested to enter a
description of the file, this description, along with
the file name, is appended to a file called
XXXXXXX.XXX in the upload (or private) directory.
(D)own......Starts a file download. Only files located in the
current download area's directory will be available.
File descriptions will only be available if the Sysop
has created the XXXXXXXX.XXX file in the current
download area's directory. (See the 'Special Host
Mode Files' section)
(C)hat......Page the Sysop for a chat.
(?).........Help.
(Q)uit......Quit to the
The Message Menu
Messages are held within the system in two parts. The message
headers are kept in a single file called MESSAGE.IDX which the
system automatically creates and updates in the 'Host Main Path'.
The text of each message is kept in a separate file, in the 'Host
Message Path' directory, where the file name is a number and the
extension is '.MSG' e.g. 1.MSG, 2.MSG, 145.MSG etc. All message
file handling is carried out through the host mode. NEVER delete
any message files or the MESSAGE.IDX file manually. Immediately
after the welcome screen is shown the system does a message check
to see if any new messages, addressed to the current user, exist.
If so he is asked if he wishes to read them immediately. If 'Y'
is pressed the messages are displayed. To enter the message
section proper press 'M' from the main menu. The following
message options are available to all users:
(P)ost......Send a message to another named user. The user's
name must be found in USER.HST. If 'ALL' is entered
in response to 'To: ' then the message is deemed to
be an open message to all users and no particular
user will be informed of it's presence. Otherwise
the named recipient will be informed of it's
existence when he next logs on. When you have filled
in the 'Subject' and 'Private?' options you are
presented with a line editor for you to create your
message with. The editor word wraps automatically.
To end the message - enter a period ('.') at the
start of a new line and press RETURN. The following
editor options are presented after you have finished:
(C)ontinue...Carry on where you left off.
(E)dit.......Change the text on a selected line.
(I)nsert.....Insert text at a specified line number.
(D)elete.....Delete one or more lines of text.
(L)ist.......List your text for viewing.
(A)bort......Abort (don't send) the message and exit.
(S)ave.......Save (send) the message and exit.
When saved the message is date/time stamped and, if
addressed to a named user, is marked <Not Received>
and also <PRIVATE> if applicable.
Note: If a user sends a message to the 'SYSOP' then
the message will be directed to the user whose name
has been entered in the 'Sysop's Name' field of the
host mode configuration section.
(R)ead......Read messages - you are prompted for a start number.
You may read any message posted by you or to you or
any other messages on the system which have not been
marked <PRIVATE> by the sender. After reading a
message you are offered the following options:
(A)gain....Read the message again.
(N)ext.....Read the next message. (Or use ENTER)
(P)rev.....Read the previous message. (Or use ENTER)
(R)eply....Reply to the message - message header
created for you. The word 'Subject: ' in
the header is replaced by the words 'Reply
to: ' followed by the original subject
description, to distinguish the reply
from an original posting. Otherwise all
is as described in (P)ost above. Replies
have hidden links to originals so that
related messages can be found via the (+)
and (-) options described below.
(K)ill.....Kill the message - ONLY those which you
have sent or those addressed to you which
are marked <PRIVATE>.
(G)o.......Goto, and display, a message specified by
it's number.
(!)........Add the current message to the mailbag.
(+)........Scan forward for related messages.
(-)........Scan backwards for related messages.
(?)........Help.
(Q)uit.....Back to the main MESSAGE MENU.
(S)can......Quick scan through message headers - you are prompted
for the start number.
(N)ew.......Read all messages posted since the current caller was
last on. All the options available under (R)ead
above, apply.
(B)atch.....Enter the message batching section. The following
options are available to facilitate the manipulation
and downloading of the mailbag:
(A)ll......Add ALL messages in the base to the
mailbag.
(N)ew......Add new messages posted since the callers
last log-on, to the mailbag.
(R)ange....Add a specified range of messages to the
mailbag.
(P)review..Preview the contents of the mailbag.
(D)ownload.Download the mailbag - the caller is asked
if he wants the mailbag archiving if the
Sysop has created the optional 'BATCH.BAT'
file in the 'Host Main Path' directory.
(C)lear....Clear out the mailbag for a fresh start.
(?)........Help.
(Q)uit.....Quit to the message menu.
(F)ind......Find messages which match a message header mask.
The following three line search mask is presented to
be filled in by the caller:
From:
To:
Subject:
An empty field will match with anything. Field
entries are not case sensitive and need not be full
words. For example to find all messages from HARRY
JONES to anyone about WS3000 modems, a suitable mask
would be:
From: HARRY JONES
To:
Subject: WS3000
If all three fields are left empty, the find
operation is aborted. When a message has been found
the caller can respond with a sub-set of the options
available when reading messages via the (R)ead option
but only messages matching the mask will be shown.
Pressing 'Q' quits back to the full (R)ead menu with
the full range of options once more made available.
(K)ill......Kill a selected message. You can ONLY kill those
message posted by you or those messages which are
addressed to you AND marked private.
(C)hat......Page the Sysop for a chat.
(?).........Help on the message commands.
(Q)uit......Quit back to the main menu.
Sysop Extras
The following extra powers are available to anyone who enters the
special Sysop Password when entering the system. The Sysop can
(R)ead and (K)ill any message, without restriction. When reading
or scanning messages, the sysop is shown a number in square
brackets after the message number. This is the actual message
file number (e.g. 14.MSG, 125.MSG etc.) which contains the text
of the message. This will not necessarily be the same as the
message number. This would, for example, enable the Sysop to
alter text in messages whilst outside the host mode if he
desires.
The Door Menu
(O)pen......Open a specified door.
(L)ist......List the door programs available.
(?).........Help.
(Q)uit......Quit to the main menu.
The Options Menu
(A)nsi......Enables a caller to turn ANSI displays On/Off - the
selection is saved in the callers record in USER.HST.
(H)ot-key...Enables the user to select single key press option
selection (should only be used on very clean lines).
The selection is saved in USER.HST.
(E)xpert....Enables the caller to select the short 'Expert' menus
- the selection is saved in USER.HST.
(P)assword..Enables a caller to change his password - the new
password is saved in USER.HST.
(C)hat......Page the Sysop for a chat.
(?).........Help.
(Q)uit......Quit back to the main menu.
SPECIAL HOST MODE FILES
XXXXXXXX.XXX
These are text files which can be created by the system operator,
to enable users to see a description of each file available for
download. Each download directory made accessible to callers
needs it's own 'XXXXXXXX.XXX' file. These are a standard ASCII
text files. Each file name and description must occupy just one
line. The same file is used for both ANSI and TELETYPE users and
the special control codes described elsewhere, may be used to
colour the output for the ANSI callers.
The maintenance of 'XXXXXXXX.XXX' is manually carried out by the
Sysop, who's responsibility it is to make sure that it actually
reflects the files on offer in it's download directory.
NEWUSER.HST
If this file has been created in the 'Host Main Path', then it is
displayed to a NEW USER immediately after he logs on. You can
provide any guidance which you feel necessary for new users here.
No separate ANSI file is provided but the special '^' codes can
be used to colour the output for ANSI users.
NOTICE.HST
If this file has been created in the 'Host Main Path', then it is
displayed to a user immediately after he logs on. You can post
any special notices which you want everyone to see here. The
same file is shown to ANSI and TTY callers - the '^' special
codes are supported.
LOGOFF.HST
If this file has been created in the 'Host Main Path', then it is
displayed to a user immediately before he logs off. The same
file is shown to ANSI and TTY callers - the '^' special codes are
supported.
MESSLOGO.ANS
MESSLOGO.TXT
If either of these files is created in the 'Host Main Path', the
the appropriate one is displayed to the user the FIRST time he
enters the MESSAGE section in any one session. The file is not
displayed on subsequent visits to the section within the same
session. Any special message or logo can be included in this
way. The same logic is used as in the case of WELCOME.ANS/TXT as
to which file (ANS/TXT) will be displayed.
FILELOGO.ANS
FILELOGO.TXT
If multiple download file areas have NOT been defined via
'FILES.HST', this is provided to serve the same purpose as the
MESSLOGO files described above, but is shown when entering the
FILES section. If multiple download areas have been defined,
each area has it's own logo specified in 'FILES.HST'
D I R E C T C O N N E C T I O N
Setting Up
Two computers may be connected together directly using a null
modem cable. If EaziLink is run on machines connected this way,
it detects the null modem connection and takes appropriate
action. If Terminal mode is entered, EaziLink goes on-line
immediately - using the communication settings from the
configuration 'Entry Default' record. If host mode is entered,
pressing 'N'ull modem will put EaziLink on-line in host mode -
the communications parameters will be 8-N-1, Xon/Xoff and the
baud rate as set in the 'Baud Rate' field of the host mode
configuration section. It is possible to put both machines on-
line via Terminal mode or to put one computer on-line via
terminal mode and the other via host mode. Remember that the
communications parameters at each end MUST be the same. Please
note that host mode always uses Xon/Xoff handshaking and the
other computer must be set to use Xon/Xoff if the link is to be
reliable.
Please note that when a Terminal to Host mode set up is used,
host mode echoes the Terminal's keystrokes back to it so that the
characters typed can be seen and all appears normal. If,
however, a Terminal to Terminal set up is used this is not the
case and both Add Line Feeds and Local Echo must be turned ON at
both ends.
To terminate a direct connection, the user must hang-up the
computer/s in Terminal mode, using Alt H. Host mode may be
logged off properly or Alt H may be used.
Uses
A null modem direct connection, as described above, can be used
to test out host mode in a more realistic way than using the
'L'ocal test option. Files may be transferred from one machine
to the other using the installed file transfer protocols such as
DSZ or the supplied ELX. Use the highest baud rate at which your
set-up works reliably, at both ends, - the top two baud rates,
19200 and 38400, will only be of use with a direct connection.
(See APPENDIX B for Null Modem Cable information)
G E N E R A L
Call Connection
When a call is made, via the dialling directory or from Terminal
mode, EaziLink will consider a successful connection to have been
made if either:
1) No connect strings have been defined in the configuration
section and the carrier detect pin (DCD) is raised.
2) Connect strings have been defined and a matching connect
string is returned by the modem.
It is important that the modem does NOT keep DCD raised at all
times. Set your modem registers to ensure that it does not.
Note: Your modem MUST drive the DCD pin correctly, i.e. normally
low and raised only when a connection has been made, DCD will be
monitored throughout the on-line session and EaziLink will return
to the dialling directory, automatically, if the carrier signal
is lost, either accidentally or normally on termination of the
connection. If the DCD pin is NOT driven correctly, i.e. never
raised, and a connection is established as a result of a CONNECT
string, EaziLink will go on-line for a moment but will then drop
back to the dialling directory. Host mode also relies on the DCD
pin being driven properly.
File Selection Windows
In many situations throughout EaziLink, where a file name is
requested from the user, a file selection window can be opened to
allow a file to be picked out by use of a highlighted cursor bar.
Where this feature is available the words '(ESC-Select)' appear
at the top of the prompt box. Once in the selection window you
can change drive by pressing the letter of the drive, change
directory by moving the cursor bar to the directory's name and
pressing [ENTER], or select a file name by moving the cursor bar
to the file name and pressing [ENTER]. To abort selection, press
[ESC]. No matter where you go in your disk directory system,
whilst in the window, The full path name of the selected file is
returned and your original EaziLink directory path is always
restored when you exit the window. So you cannot lose your
bearings by accident whilst using file selection windows.
Command Line Options
One of three optional command line parameters may be used when
invoking EaziLink:
1) C>EAZILINK /Qfilename n,n,n,n
Where 'filename' is optional - if it is not included the default
EAZILINK.DIR is assumed. This option enables the user to
instruct EaziLink to load and automatically enter and dial a
queue of numbers. Each number, represented by 'n' in the example
above, is the index number, in the dialling directory, of the
remote service to be contacted. Up to 10 numbers can be defined
in this way. This feature can be used ,in conjunction with a
batch file, to dial a particular contact by name. For example,
assuming your local Prestel node is at position number 4 in your
dialling directory, a batch file called PRESTEL.BAT and
containing the line - 'EAZILINK /Q4' would automatically call
your local Prestel node without further user intervention.
If the '/Q' is followed immediately by a dialling directory name,
that directory will be loaded before the following queue of
numbers is dialled. To load a directory called 'TOPTEN.DIR' the
correct command line format would be:
C>eazilink /qtopten 1,2,3,4
The directory name may also include drive and path components -
otherwise the EaziLink main directory is assumed. If no file
name extension is included, EaziLink assumes '.DIR'. Please note
that the form - 'C>eazilink /qtopten', without any queue numbers,
will cause EaziLink to load 'TOPTEN.DIR' and go directly to the
dialling directory ready for use - users may find this a useful
start-up feature.
2) C>EAZILINK /H
This option loads and runs EaziLink and immediately enters host
mode, ready to receive a call. This option could be used with a
separate 'carrier watch' utility, to enable EaziLink to recover,
via a warm boot, if the system hangs whilst a remote user is in
the DOS shell.
3) C>EAZILINK /Mfilename macro
The macro command line parameter is described fully in the
earlier MACROS section.
Please note that these three command line options are mutually
exclusive, i.e. only one can be used at a time.
Video Options
Certain video adapter related features can be controlled by
setting VIDEO= FLAGS in the environment, where FLAGS is a string
of options drawn from the following:
s+ Suppresses snow generated on certain colour adapters.
c- Turns colour off. All output is then monochrome.
b+ Use BIOS for all screen output. Some near compatibles may
be able to use the program using this flag.
For example the DOS command - 'SET VIDEO= s+c-' will turn snow
suppression on and colour off.
Special keys
During user inputs the following editing keys are available:
^Y Delete all input from the line for a clean start.
Cursor Right Move right one character position
Cursor Left Move left one character position
HOME Jumps to the start of the input
END Jumps to the end of the input
INS Toggle insert/overwrite mode On/Off
DEL Delete the character under the cursor
BACKSPACE Delete the character to the left of the cursor
RETURN Accept the input
ESC Abort the input
The ESC key generally cancels activities, leaving current entries
unchanged, aborting operations, returning from hardware error
messages etc.
RELEASE HISTORY
Oct. 1988 Version 1.0 first public release of EaziLink.
Mar. 1989 Version 2.0 released.
Sep. 1989 Version 3.0 released.
Mar. 1992 Version 4.0 released.
APPENDIX A
Common problems and solutions.
Problem:
EaziLink goes on-line unexpectedly when dialling out commences
(before contact has actually been made), or immediately terminal
mode is entered.
Solution:
Your modem may be one of those, like the Dowty Quattro, which
holds DCD (the carrier detect pin) high by default, unless it is
instructed to do otherwise. EaziLink requires DCD to be carrier
signal driven - i.e. to be low initially and only raised when a
carrier signal is detected. Set your modem to ensure that DCD is
controlled correctly. The commonest command to achieve this is
'&C1'. From Terminal mode type 'AT &C1 &W' then press RETURN -
This will write the command to the modem's memory. If this does
not work check you modem manual to see if a different command is
required or a dip switch needs setting.
Problem:
When a connection is made EaziLink goes online momentarily but
then, within 2 or 3 seconds drops back to the dialling directory.
The modems are still connected!
Solution:
The DCD pins at each end of your modem serial cable are probably
not wired through to each other. Make sure the DCD pins are
wired correctly (pin 8 on a 25 pin plug, pin 1 on a 9 pin plug).
Problem:
When dialling out, the dialling attempt counter always continues
to run until it reaches zero - even if the line is engaged or no
dial tone is present.
Solution:
Your modem, like the early WS3000 for example, may not return
'BUSY' or 'NO DIALTONE' messages in which case this is
unavoidable. Otherwise check that you are using the correct
value with 'V' and 'X' in the Init and Init1275 strings to enable
the full range of extended modem return messages.
Problem:
The file transfer system does not work.
Solution:
Make sure that your external file transfer protocols, and any
batch files involved, are in the directory pointed to by the
configuration 'Protocol Path' field. Check that protocol driver
names used in batch files include the full path component.
Ensure that the entries you have made in EAZILINK.PRO are
correctly formed. (see: FILE TRANSFER PROTOCOLS)
Problem:
Text captured to disk using Alt C sometimes contains jumbled
sequences of characters which are arranged differently to how
they were on screen.
Solution:
This is unavoidable. If received text contains ANSI control
characters which position the cursor etc., the capture facility
cannot hope to reproduce the screen display exactly. If you want
to save exact, full colour, ANSI images - use the Alt I image
capture facility.
Problem:
When sending messages via Alt M or sending long macros, many of
the characters are lost, producing garbage at the other end.
Solution:
You need to set the Ascii CD and Ascii LD to a value high enough
to prevent this. If the 1200/75 baud rate is in use, EaziLink
automatically includes extra delay - this is in addition to those
which the user specifies - this prevents the modem's buffer from
being overrun. Using Rts/Cts handshaking should also have the
same effect. At other speeds you will need to experiment to find
the lowest delay which will ensure correct operation. With
Prestel and any other service which creates similar problems, use
the special AsciiCD value '999' to make use of the special 'wait
for echo back' feature.
Problem:
When dialling out from terminal mode, the modem connects but
EaziLink always goes on-line at 300 baud regardless of what baud
rate is set in the default entry. Communications are thus
impossible at all but 300 baud.
Solution:
Remember that EaziLink uses the full 'CONNECT xxxx' strings to
determine the baud rate at which the modem has connected. You
will need to send the commands which your modem requires to set
it to return these extended strings BEFORE you dial (e.g. AT V1
X1). If you work from the terminal often you could set up the
'Init' and 'Init1275' strings, which you have in your 'Modem
Control Strings' section, as macros for convenience. If you fail
to follow the above procedure, EaziLink will take the short
'CONNECT' string, returned for all baud rates, as being the 300
baud extended 'CONNECT|' string and will thus always set the port
to 300 baud.
Problem:
With some services EaziLink logs on fine and the text received is
readable, but as soon as the remote system hands over control to
another, via a front door or gateway, the text received is
garbage.
Solution:
Set the Strip Bit 7 option in the service's dialling directory
entry to Yes. Some system require you to contact them at 8-N-1
but then hand over control to a sub-system which uses 7-E-1 -
stripping bit 7 of the incoming 7-E-1 data will usually make it
readable on your system which is still set to 8-N-1.
APPENDIX B
Null Modem Cable
The following pin connections in a null modem cable will enable
EaziLink to work as described in the manual when one computer is
connected directly to another:
PC/XT PC/XT
TX 2 ------------ 3
RX 3 ------------ 2
RTS 4 ------------ 5
CTS 5 ------------ 4
GND 7 ------------ 7
DSR 6 ------------ 20
DCD [8--20] [8--20] (Wire pin 8 to 20 locally)
DTR 20 ----------- 6
This set-up ensures that DCD is held high allowing EaziLink to
automatically detect a null modem connection and go on-line. No
special 'direct connection' option is provided or needed within
the software itself.